PHP面向对象之后的优先级问题

赵开锦 发布于 2013/01/10 17:53
阅读 247
收藏 1
PHP

基本的PHP运算符优先级在PHP手册中有详细的说明,不知道的可以看PHP中文手册,但是在面向对象之后,一些面向对象专有的运算符(::与->)的优先级问题手册上并没有说明,所以我有些疑问,请大家不吝赐教。

问题1:这段代码$obj =& $someClass->f();应该如何解释:
A:$obj =(&$someClass)->f();
B:$obj =&($someClass->f());

问题2:代码$this->mCacheObj = & OpMemcache::getInstance(self::CACHE_CLUSTER_ID);如何解释:
A:$this->mCacheObj = (&OpMemcache)::getInstance(self::CACHE_CLUSTER_ID);
B:$this->mCacheObj = &(OpMemcache::getInstance(self::CACHE_CLUSTER_ID));


加载中
0
回去干活
回去干活

&运算级别很低.

这样你就可以考虑出来了   1+$obj->num();

你说+ 先还是 -> 先?

而且& 比+ 还要低.

0
wwwmmm
wwwmmm

我觉得 是 B  应为  A  根本就没有意思   取$someClass的地址来调用方法? 

所以应该是 B  执行完方法 把结果传址 给接收者

0
Liuxd
Liuxd
啥时候的语法哦,从php5开始,对象默认是传引用的,不用&了。
0
赵开锦
赵开锦
经确认应该是B了,谢谢大家
返回顶部
顶部