3

我有这个代码

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

那里在&做什么。谢谢

4

4 回答 4

6

它将变量更改为“通过引用传递”。这与传入变量的副本相反。

有关详细信息,请参阅手册

一种常见的用途是在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
于 2010-06-04T16:26:02.300 回答
6

它创建一个参考。如果您不知道参考是什么,请阅读:http ://www.php.net/manual/en/language.references.php

于 2010-06-04T16:26:20.177 回答
4

阅读PHP 专家 Johannes Schlüter 的Do not use PHP references

PHP 引用是 PHP 4 的保留,其中对象是通过值而不是通过引用传递的,除非您故意通过引用来传递它们。这在使用 PHP 5 时不是必需的,因为在 PHP 5 中所有对象都是通过引用传递的。

在 PHP 5 中,标量和数组仍然默认按值传递。如果您需要通过引用传递它们,您应该只使用一个对象。

于 2010-06-04T17:23:44.357 回答
2

它用于通过引用而不是通过值传递值,这在 php 中是默认的

于 2010-06-04T17:24:40.240 回答