记载一个phper的历程!http://phperwuhan.blog.phpchina.com
[原创]发现php5自动引用对象失败的bug
上一篇 /
下一篇 2007-12-07 15:58:10
/ 个人分类:php
来源:http://phperwuhan.blog.163.com/blog/static/41142602200711733628673/edit/
查看php5手册我们知道一个对象变量被创建以后自动返回引用,但是由于未知的原因,在函数/方法中的对象参数最好使用&符号将对象的引用显式的传递过来,否则如果没有用&符号在某些未知的情况下会发生对象的引用传递失败的情况(传递的是对象复制而不是对象引用)。
我自己开发时遇到过如下例子的对象引用传递失败的情况,但是在其他大多数函数/方法中是可以不用&符号而直接正确传递对象的引用的。
例子:
...
/* 如果方法f1()和f2()中都没有显式引用参数$objVar1(即去掉参数中的&符号)则在f2()得到的是f1()传来的对象复制而非对象引用,那么我想通过f2()修改f1()中对象变量$objVar1的目的也就无法达到了。 */
public function f1(&$objVar1) { /* $objVar1是个对象 */
f2($objVar1);
}
public function f2(&$objVar1) {
$objVar1 = f3(); /* 方法f3()返回一个对象 */
}
public function f3() {
$objVar2 = new class1();
$objVar2->p1 = 'test';
return $objVar2;
}
...
相关阅读:
- 我的许愿墙 (劉建春, 2007-12-04)
- 转:看实例学正则表达式 (lx4909, 2007-12-04)
- 深入浅出PHP面向对象与设计模式4 (lightsaber, 2007-12-05)
- PHP之变量、常量学习笔记 (arbrrrr, 2007-12-05)
- PHP Frameworks纵览 (wood, 2007-12-05)
- 深入浅出PHP面向对象与设计模式5 (lightsaber, 2007-12-06)
- 正则 字符 描述 (jeasonyan, 2007-12-07)
- 管理Discuz!代码分析的收集整理 (netlawe, 2007-12-07)
- [转]Discuz模板语句分析及知识技巧 (netlawe, 2007-12-07)
- php效率优化 (转载,仅作参考,具体自己衡量) (arbrrrr, 2007-12-07)
导入论坛
收藏
分享给好友
管理
举报
TAG:
php