我有这段代码
$myNewClass->cars =& Orders_Car::GetRecords($myNewClass->searchString);
^
&
在那里做什么。
感谢
答案 0 :(得分:6)
它将变量更改为“通过引用传递”。这与传递变量的副本相反。
有关详细信息,请参阅the manual。
一个常见的用途是foreach
。
通常,foreach在可迭代数组或对象的副本上运行。
这意味着
$salad=array(1,2,3);
foreach ($salad as $leaf){
$leaf+=1;
}
echo $salad[0];// output: 1
foreach ($salad as &$leaf){
$leaf+=1;
}
echo $salad[0];// output: 2 because & made the assignment affect the original array
答案 1 :(得分:6)
它创建了一个引用。如果您不知道引用的内容,请阅读:http://www.php.net/manual/en/language.references.php
答案 2 :(得分:4)
由PHP专家JohannesSchlüter阅读Do not use PHP references
PHP引用是PHP 4的延续,其中对象是通过值而不是引用传递的,除非您故意通过引用创建它们。使用PHP 5时不需要这样做,因为所有对象都是在PHP 5中通过引用传递的。
默认情况下,在PHP 5中仍然按值传递标量和数组。如果需要通过引用传递它们,则应该只使用一个对象。
答案 3 :(得分:2)