美女爱飘逸
2015-04-20 11:59
比如,对象Nb的内存地址是0x0001,有个变量$a = new Nb(); 那么$a的值是什么呢,就是内存地址0x0001,就指向这个Nb对象
$b = $a; 那么$b的值是什么呢,还是内存地址0x0001,也是指向Nb对象,那么把$a = null ,那么对$b也没有影响,$b还在使用Nb对象,那么,$a = null的时候,是不会调用析构函数的
那么,$c =& $a; $c的值是什么呢? 首先,&是引用传值,所以,$c的值是变量$a的内存地址,假如,$a的内存地址是0x0101,那么,$c的值就是0x0101,指向$a
假如Nb类里面有个eat方法,那么我们调用$c->eat();时,是怎样个过程呢,那就是,$c通过自己的值0x0101找到$a,$a通过自己的值0x0001找到Nb这个对象,然后,就调用了eat这个方法。
在PHP 中引用的意思是:不同的名字访问同一个变量内容。
与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容,在内存中存放的地址。
http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/09/10/2173092.html
正确,但我不是高手。。
PHP面向对象编程
70154 学习 · 361 问题
相似问题