PHP手册说你必须sort($array)
。 $array
将通过引用传递,因此sort()
将修改$myArray
。
如果你做sort(&$myArray)
,我只是想知道是否有任何问题或暗示。
答案 0 :(得分:1)
简短的回答是它不会有所作为。
答案很长,你应该不惜一切代价避免引用。它们是bug的主要来源,你真的不需要它们。有一些罕见的情况需要引用来解决问题,但它们很少而且很远。
有很多引用的原因是在PHP 5.0之前,没有对象引用的概念。因此,您需要通过引用传递所有对象(并通过引用返回它们)以获得任何类型的OO功能(允许方法修改对象等)。但自从5.0(已有十年历史)以来,已经不再需要了。要了解它现在如何运作,我建议您阅读this answer。
所以更易于维护和正确使用:
sort($myArray);
答案 1 :(得分:1)
提供更详细的答案:
弃用传递引用的原因是分散的。它主要是代码清洁度。其次,它通常被新手滥用,如果没有监督就会导致副作用。 (如果新手滥用是一个很好的弃用理由,那么mysql_query
应该早已不复存在。)
第三,实际上存在一些内部存储器管理问题,当ZendVM不期望它时,通过引用传递参数。 (Quercus和Project Zero没有这样的问题。)