“&”是什么在PHP的课程前面意味着什么?

时间:2009-06-16 15:46:16

标签: php

我刚刚在PHP中继承了这段代码,似乎对googles api进行了某种web服务调用。我不是PHP的专家,我有一些语法问题,我具体涉及以下行     $ soapClients =& APIlityClients :: getClients();

我理解双“::”表示APIlityClients是一个静态类,但我不确定“&”是什么在APIlityClients前面意味着。

5 个答案:

答案 0 :(得分:5)

在PHP中使用变量前面的&符号时,您将创建对该变量的引用。

$foo = 'bar';
$baz = &$foo;

echo $foo //bar
echo $baz //bar

$foo = 'foobazbar';
echo $foo //foobazbar
echo $baz //foobazbar

在PHP5之前,当您从PHP中的类创建对象时,该对象将被传递到按值的其他变量。该对象不是引用,这是大多数其他面向对象(Java,C#等)语言的标准。

但是,通过在其前面实例化一个带有&符号的类,您可以创建对返回对象的引用,并且它的行为就像其他语言中的对象一样。这是PHP5之前的常用技术,可以实现OOP效果和/或提高性能。

答案 1 :(得分:4)

PHP是获取对某事物的引用而不是复制其值的版本。因此,在这种情况下,&将检索对APIlityClients::getClients()的返回值的引用,而不是返回值本身的副本。

答案 2 :(得分:2)

它的意思是“地址” - 它指的是从getClients()调用返回的值,而不是APllityClients类本身。

基本上它是说将$ soapClients分配给对getClients()返回的内容的引用,而不是复制返回的值。

答案 3 :(得分:1)

&安培;表示pass by reference rather than by value。它在PHP5中应用不多,因为在该版本中默认通过引用传递类,但在以前的版本中不是。

答案 4 :(得分:0)

&&意味着它是一个参考。引用用于允许多个变量指向同一个对象。

this page解释得比我更好

另请参阅http://us3.php.net/manual/en/language.references.php以获取有关php中的引用的更多信息