是什么&在PHP中做

时间:2010-06-04 16:23:51

标签: php php-5.3

我有这段代码

$myNewClass->cars =& Orders_Car::GetRecords($myNewClass->searchString);
                   ^

&在那里做什么。 感谢

4 个答案:

答案 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)