为什么在返回上下文中使用ksort()会失败,而其他标准函数却能工作


Why does using ksort() in a return context fail, but other standard functions work

在这样的返回上下文中使用PHP的ksort()函数时,

function test() {
    $items = array(
        126 => 'apple',
        41 => 'pear',
        80 => 'mango'
    );
    return ksort($items);
}
$result = test();
var_dump($result); // bool(true)

当var_dumped时,我得到的结果是bool(true)

另一方面,当像PHP文档中那样使用ksort时,它是有效的。

function test() {
    $items = array(
        126 => 'apple',
        41 => 'pear',
        80 => 'mango'
    );
    ksort($items)
    return $items;
}
$result = test();
var_dump($result); // properly ordered array

我可以在返回上下文中使用其他PHP函数,所以我的问题是为什么ksort在第一个例子中不起作用,为什么它返回true?

因为ksort()更改了原始数组,但返回了一个布尔值。在您返回Array的第二个示例中,第一个示例仅返回ksort()的返回值。

请阅读文档:

http://php.net/manual/en/function.ksort.php