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 中 & 引用的意思了!

posted @ 2012-04-17 19:39  蚂蚁nothing  阅读(300)  评论(0编辑  收藏  举报