我有这个代码
$myNewClass->cars =& Orders_Car::GetRecords($myNewClass->searchString);
^
那里在&
做什么。谢谢
它将变量更改为“通过引用传递”。这与传入变量的副本相反。
有关详细信息,请参阅手册。
一种常见的用途是在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
它创建一个参考。如果您不知道参考是什么,请阅读:http ://www.php.net/manual/en/language.references.php
阅读PHP 专家 Johannes Schlüter 的Do not use PHP references
PHP 引用是 PHP 4 的保留,其中对象是通过值而不是通过引用传递的,除非您故意通过引用来传递它们。这在使用 PHP 5 时不是必需的,因为在 PHP 5 中所有对象都是通过引用传递的。
在 PHP 5 中,标量和数组仍然默认按值传递。如果您需要通过引用传递它们,您应该只使用一个对象。