<?php//对象的值传递class Person{ //对象属性 成员变量 public $name; protected $age; private $work; //对象行为 成员方法}//程序允许在内存的栈区$zhangsan = new Person();var_dump($zhangsan); //object(Person) #1对象标识符$lisi = $zhangsan; //传递的是对象标识符var_dump($lisi); //$object(Person) #1 对象标识符//每个包含对象的变量,都持有对象的引用(reference),而不是对整个对象的拷贝
<?php//对象的值传递class Person{ public $name;}$zhangsan = new Person();$zhangsan->name = 'Zhang San';$lisi = $zhangsan;//将zhangsan的对象标识符传递给lisi,即lisi对zhangsan对象的引用。$lisi = 'abc'; // 'abc'不是地址标识符,因此lisi与zhangsan断开联系echo $zhangsan->name . PHP_EOL;
<?php//引用传递对象class Person{ public $name;}$zhangsan = new Person();$zhangsan->name = 'Zhang San';$lisi = &$zhangsan;//直接指向zhangsan的内存。$lisi = 'abc'; // 'abc'不是地址标识符,因此lisi与zhangsan断开联系echo $zhangsan->name . PHP_EOL;//PHP Notice: Trying to get property of non-objectecho $zhangsan . PHP_EOL;
PHP对象传递
原文地址:http://blog.51cto.com/phpme/2051503