关于 PHP 一直困扰着我(以及其他所有人)的一件事是它在函数命名和参数方面的不一致。另一个最近的烦恼是它倾向于通过引用而不是值来请求函数参数。
我快速浏览了 PHP 手册,并找到了该函数sort()
作为示例。如果我正在实现该函数,我将按值获取一个数组,将其排序到一个新数组中,然后返回新值。在 PHP 中,sort()
返回一个布尔值,并修改现有数组。
我想怎么称呼sort()
:
$array = array('c','a','b');
$sorted_array = sort($array);
PHP希望我如何调用sort()
:
$array = array('c','a','b');
sort($array);
$sorted_array = $array;
此外,以下会引发致命错误:Fatal error: Only variables can be passed by reference
sort(array('c','a','b');
我想这其中的一部分可能是 PHP 过去的遗留物,但这样做肯定是有原因的。我可以看到通过引用 ID 传递对象的值,就像 PHP 5+ 所做的那样(我猜这有点在按引用传递和按值传递之间),但在字符串、数组、整数等的情况下则不然。
我不是计算机科学领域的专家,所以你可能会猜到,我仍然试图掌握其中一些概念,我很好奇事情是否有这样的原因,或者是否只是剩菜。