变量赋值和对象赋值的比较name='jesse';//如果修改成功,则为引用传递的值echo$p->name;//jesse?>案例说明:这里通过比较变量赋值方式和对象赋值方式,$b=$a;的赋值方式;代码中是“复制赋值”,所以修改其源值($a的值)的情况下,$b的值不受影响。$a和$b的内存关系图如下:以及代码$p->name='jesse';将数据类型赋值给$p变量,通过$p修改对象内部值成功,对比变量的传值方式证明这是引用传递,内存关系图如下:name='jesse';//将对象赋给另一个变量$m=$p;//修改另一个变量的属性值$m->name='Marry';//输出源变量赋值变量访问内部属性的结果echo$p->name,$m->name;}?>$m=$p;代码是这篇文章最“亮眼”的代码等,数字右边是一个对象,左边是一个变量,所以尖锐的问题来了,$m是对象的副本吗?还是通过引用传递?代码的内存关系如下:所以最后两个对象的属性值全部改成Marry!!!那么当值通过引用传递时会发生什么呢?name='jesse';//将对象分配给另一个变量$m=&$p;//另一个变量修改属性值$m->name='Marry';//将输出源变量赋值给变量访问内部属性的结果echo$p->name,$m->name;?>
