<?php
$name = 'Bob';            
$bar = &$name;             
echo $name."<br>";    
echo $bar;
?>打印出来的内容是
My name is Bob
My name is Bob都说程序都是按顺序执行的,
echo $bar 这个我明白
但是echo $name 这个打印的怎么也是My name is Bob呢
我觉得应该是Bob ,   My name is 这一串不应该有啊! 迷茫中

解决方案 »

  1.   

    &是取地址操作符,$bar = &$name;这一句后将$bar和$name都指向了同一个变量;
      

  2.   


    首先你加&貌似没起多大的作用,因为你下面的语句并没有修改什么?在说了,$name的值本来就是“Bob”
      

  3.   

    不好意思,没仔细看变量加上&代表指向内存,修改任意一个另外一个就会跟着修改而且我没看见 “My Name is”的字符串?
      

  4.   


    <?php
    $name = 'Bob';              
    $bar = &$name;            
    $bar = "My name is $bar";     
    echo $name;               
    echo $bar;
    ?>发错代码了 是这个
      

  5.   

    &是php里关于变量引用的用法。
    $bar = &$name;使bar与name指向同一变量。也就是说如果你修改了name的值也就相当于修改了bar的值。
    参考:http://cn.php.net/manual/zh/language.references.php
      

  6.   

    <?php
    class a{
    var $abc="ABC";
    }
    $b=new a;
    $c=$b;
    echo $b->abc;//这里输出ABC
    echo $c->abc;//这里输出ABC
    $b->abc="DEF";
    echo $c->abc;//这里输出DEF
    ?>
    楼主结合六楼兄弟的解析,再按这个对象引用区分下。
      

  7.   

    可以参考下这篇文章,PHP引用符&的用法介绍
      

  8.   


    <?php
    $name = 'Bob';            
    $bar = &$name;  //将$name的地址传递给$bar,使其也指向$name的内存区域,相当于传递引用,自然两者相同了         
    echo $name."<br>";    
    echo $bar;
    ?>