PHP & 符号讲解
关于 PHP & 符号就不多讲解了,官方也有说明,直接看下面的例子体会一把吧
/* 例子1 */ echo '[变量的引用]<br />'; $a = 1; $b = & $a; echo '引用$a'.'<br />'; echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; echo '改变$b'.'<br />'; $b = 2; echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; echo '改变$a'.'<br />'; $b = 3; echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; echo '<br /><br />'; /* 例子2 */ echo '[参数的引用]<br />'; echo '/*参数一定是变量*/<br />'; function addOne(& $i) { return ++$i; } $a = 1; echo '原始$a='.$a.'<br />'; addOne($a); echo '新的$a='.$a.'<br />'; echo '<br /><br />'; /* 例子3 */ echo '[参数的引用]<br />'; function &addTen() { static $i = 0; $i += 10; return $i; } $a = addTen(); echo '第一次调用结果$a='.$a.'<br />'; $a = addTen(); echo '第二次调用结果$a='.$a.'<br />'; $a = 100; echo '改变当前$a='.$a.'<br />'; $a = addTen(); echo '第三次调用结果$a='.$a.'<br />'; $a = &addTen(); echo '第四次引用函数调用结果$a='.$a.'<br />'; $a = 100; echo '改变当前$a='.$a.'<br />'; $a = addTen(); echo '第五次引用函数调用结果$a='.$a.'<br />'; echo '<br /><br />'; /* 扩展说明 */ echo '[取消引用 ]<br />'; $a = 1; $b =& $a; echo '清除前<br />'; echo '$a='.$a.'<br />'; echo '$b='.$b.'<br />'; unset ($a); echo '清除后<br />'; if (isset($a)) { echo '$a=Defined<br />'; } else { echo '$a=Undefined<br />'; } echo '$b='.$b.'<br />'; echo '[引申到对象的引用]<br />'; echo '<p>其实对象的赋值就是引用关系,例如 <br />$obj = new object; <br />$copyObj = $obj;<br /> 其实等同于 <br />$obj = new object; <br />$copyObj = & $obj;<br /> 所以就有赋值对象的说法 _clone . </p>';
这个例子你看懂了,你也就真的明白 PHP 中 & 引用的意思了!