2

可能重复:
用 & 符号启动 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++;}

它似乎没有任何效果,好像根本没有&符号。

这个语法应该做什么?

4

0 回答 0