可能重复:
用 & 符号启动 PHP 函数是什么意思?
我想分享我对 PHP 语言(版本 < 5.3)中的 & 符号的了解和不了解的地方。
我想我知道基本用法,例如:
$var = 'foo';
echo $var; //output foo
$var2 = &$var;
$var2 = 'bar';
echo $var2; //output bar
到目前为止,一切都很好。让我们尝试使用对象:
class Person {public $name='john';}
$person = new Person();
echo $person->name;//outputs john
$person2 = &$person;
$person2->name = 'doe';
echo $person->name;//obviously outputs doe
请注意,上面的代码在没有与号的情况下导致相同的结果,给定两者$person
并$person2 (= $person)
引用同一个对象(如在 Java 中),因此对象的任何更改都将由两个变量检索。
到目前为止,我可以说 & 运算符只对原语有用。但是,有些事情我就是不明白。
虽然,我理解这种用法:
function superplusplus(&$base) {$base++;}
$var = 2;
superplusplus($var);
echo $var;//outputs 3
我不明白的是与符号的用法,如下所示:
function &superplusplus($var) {$var++;}
它似乎没有任何效果,好像根本没有&符号。
这个语法应该做什么?