在哪种情况下PHP排序函数返回FALSE?

时间:2015-03-21 09:59:22

标签: php sorting

PHP sort()函数和此系列中的其他函数返回 成功时 true ,失败时 false 。在哪种情况下,sort函数返回 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 因此一切都是正确的。

1 个答案:

答案 0 :(得分:4)

如果参数1不是数组

,它将返回false