<?php//对象的值传递classPerson{//对象属性成员变量public$name;protected$age;private$work;//对象行为成员方法}//程序允许在内存的栈区$zhangsan=newPerson();var_dump($zhangsan);//object(Person)#1对象标识符$lisi=$zhangsan;//传递的是对象标识符var_dump($lisi);//$object(Person)#1对象标识符//每个包含对象的变量,都持有对象的引用(reference),而不是对整个对象的拷贝


<?php//对象的值传递classPerson{public$name;}$zhangsan=newPerson();$zhangsan->name='ZhangSan';$lisi=$zhangsan;//将zhangsan的对象标识符传递给lisi,即lisi对zhangsan对象的引用。$lisi='abc';//'abc'没有对象标识符,因此lisi与zhangsan断开联系echo$zhangsan->name.PHP_EOL;


<?php//引用传递对象classPerson{public$name;}$zhangsan=newPerson();$zhangsan->name='ZhangSan';$lisi=&$zhangsan;//直接指向zhangsan的内存。$lisi='abc';//'abc'没有对象标识符,因此lisi与zhangsan断开联系echo$zhangsan->name.PHP_EOL;//PHPNotice:Tryingtogetpropertyofnon-objectecho$zhangsan.PHP_EOL;