【问题标题】:In which case PHP sort function returns FALSE?在什么情况下 PHP 排序函数返回 FALSE?
【发布时间】:2015-03-21 09:59:22
【问题描述】:

PHP sort() 函数和该家族的其他函数返回 true 表示成功或 false 表示失败。在什么情况下排序函数返回false?什么是可能的失败原因?

示例:

$array = [1, 5, 22, 8, 3, 3];
$returnValue = sort($array);
var_dump($returnValue);   // bool(true)

我无法想象$returnValue 可能是false的任何情况。

我也尝试过带有用户定义比较功能的排序变体,这可能会引入一些错误,但没有成功。

$array = [1, 5, 22, 8, 3, 3];
$returnValue = usort($array, function($a, $b) { return 'Hello World'; });
var_dump($returnValue);   // bool(true)

其实你可以在比较函数中做任何你想做的事情,因为回调的返回值是内部的 转换为整数,你每次都会得到$returnValue === true。这也适用于用户定义的比较函数 没有返回值。 PHP 在这种情况下返回 null,它在内部被强制转换为整数:(int)null === 0 因此一切都是正确的。

【问题讨论】:

  • 我不确定,因为我从未尝试过这个,但也许将一个不是数组的值传递给 sort() 会导致返回 false?

标签: php sorting


【解决方案1】:

如果参数一不是数组则返回false

【讨论】:

  • 简单的答案。我从来没有想过传递与数组不同的参数。
猜你喜欢
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 2018-04-26
  • 2011-03-20
  • 1970-01-01
  • 2017-05-07
  • 2020-04-21
相关资源
最近更新 更多