为什么会是这样的输出结果? 没什么问题啊?$a === $a->b->a 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你给的例子是php4的构造函数引用,但是在php5种是默认的对象赋值就是引用,所以不需要加&,其次如果要得到拷贝的对象就需要用clone来解决,<?phpclass A { function A($i) { $this->value = $i; // 试着想明白为什么这里不需要引用 $this->b = new B(clone $this);//注意用的是clone,去掉& } function createRef() { $this->c = new B($this);//没有用clone,去掉& } function echoValue() { echo "<br />","class ",get_class($this),': ',$this->value; }}class B { function B($a) { $this->a = $a; } function echoValue() { echo "<br />","class ",get_class($this),': ',$this->a->value; }}// 试着理解为什么这里一个简单的拷贝会在下面用 *// 标出来的行中产生预期之外的结果$a = new A(10);$a->createRef();$a->echoValue();$a->b->echoValue();$a->c->echoValue();$a->value = 11;$a->echoValue();$a->b->echoValue(); // *$a->c->echoValue();?> class A: 10class B: 10class B: 10class A: 11class B: 10class B: 10 给你个较为经典的帖子http://topic.csdn.net/t/20040908/16/3352969.html 上面的结果修改一下,因为起初都用了clone:class A: 10class B: 10class B: 10class A: 11class B: 10class B: 11 php写个页面,在mysql数据库取出地址,用正则替换图片地址 请教一个preg_replace的奇怪问题。 关于二次开发 如何网页表单连接到数据库? 使用json_encode获取中文unicode的问题 关于php与数据库分离(无关)的想法,欢迎大家讨论,回者有分! php越学越觉得害怕,有太多的函数我还没有用过,大家努力 一个请求判断的问题? FWD:请教一个不常见的问题 PHP运行时间长后 错误Internal Server Error 大家能否推荐一个稳定可靠的PHP空间 怎么统计一天内的有效回复
如果要得到拷贝的对象就需要用clone来解决,
<?php
class A {
function A($i) {
$this->value = $i;
// 试着想明白为什么这里不需要引用
$this->b = new B(clone $this);//注意用的是clone,去掉&
} function createRef() {
$this->c = new B($this);//没有用clone,去掉&
} function echoValue() {
echo "<br />","class ",get_class($this),': ',$this->value;
}}
class B {
function B($a) {
$this->a = $a;
} function echoValue() {
echo "<br />","class ",get_class($this),': ',$this->a->value;
}
}// 试着理解为什么这里一个简单的拷贝会在下面用 *
// 标出来的行中产生预期之外的结果
$a = new A(10);
$a->createRef();$a->echoValue();
$a->b->echoValue();
$a->c->echoValue();$a->value = 11;$a->echoValue();
$a->b->echoValue(); // *
$a->c->echoValue();
?> class A: 10
class B: 10
class B: 10
class A: 11
class B: 10
class B: 10
http://topic.csdn.net/t/20040908/16/3352969.html
class A: 10
class B: 10
class B: 10
class A: 11
class B: 10
class B: 11