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
因此一切都是正确的。
答案 0 :(得分:4)
如果参数1不是数组
,它将返回false