您的位置:首页 > 编程语言 > PHP开发

PHP对象默认按引用传递

2013-03-12 11:17 309 查看
[摘自网络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把对象的传递默认为引用。我想主要是考虑到脚本的执行效率。
因为一方面平时对对象的操作,引用已经够用。
另一方面拷贝一个对象所花的代价要比引用大的多,
包括申请内存空间、初始化等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: