[摘自网络http://hi.baidu.com/luanxian/blog/item/c79839fa62cbfc1ca8d31194.html]
1。
php5中对象被存储在结构体zend_objects_store中。
对对象的处理已经从其他类型的变量中独立出来。
在php4时,把对象看成和其他类型一样,也存储在zval中。
2。
php5对象默认通过引用传递,其他类型的变量默认拷贝传递。
php4对象和其他类型的变量都默认拷贝传递。
如:$obj1=$obj2;
结果为创建一个$obj2的引用。$obj1和$obj2指向同一内存空间。
若想拷贝一个对象,需使用clone关键字。
如:$copy_of_object = clone $object;。
附:
php5把对象的传递默认为引用。我想主要是考虑到脚本的执行效率。
因为一方面平时对对象的操作,引用已经够用。
另一方面拷贝一个对象所花的代价要比引用大的多,
包括申请内存空间、初始化等。
1。
php5中对象被存储在结构体zend_objects_store中。
对对象的处理已经从其他类型的变量中独立出来。
在php4时,把对象看成和其他类型一样,也存储在zval中。
2。
php5对象默认通过引用传递,其他类型的变量默认拷贝传递。
php4对象和其他类型的变量都默认拷贝传递。
如:$obj1=$obj2;
结果为创建一个$obj2的引用。$obj1和$obj2指向同一内存空间。
若想拷贝一个对象,需使用clone关键字。
如:$copy_of_object = clone $object;。
附:
php5把对象的传递默认为引用。我想主要是考虑到脚本的执行效率。
因为一方面平时对对象的操作,引用已经够用。
另一方面拷贝一个对象所花的代价要比引用大的多,
包括申请内存空间、初始化等。