深入讨论PHP5对象复制技术(7)
来源:未知 责任编辑:责任编辑 发表时间:2014-01-25 11:34 点击:次
下面复制这样的一个电视机对象并且观察电视机的遥控器对象。
PHP代码
- $tv1 = new Television();
- $tv2 = clone $tv1;
- $contr1 = $tv1->getControl(); //获取tv1的遥控器contr1
- $contr2 = $tv2->getControl(); //获取tv2的遥控器contr2
- echo $tv1; //tv1的object id 为 #1
- echo '<br>';
- echo $contr1; //contr1的object id 为#2
- echo '<br>';
- echo $tv2; //tv2的object id 为 #3
- echo '<br>';
- echo $contr2; //contr2的object id 为#2
经过复制之后,我们查看对象id,通过clone操作从tv1复制出了tv2,tv1和tv2的对象id分别是1和3,这表示tv1和tv2是引用两个不同的电视机对象,这符合clone操作的结果。然后我们分别获取了tv1的遥控器对象contr1和tv2的遥控器对象contr2,通过查看它们的对象id我们发现contr1和contr2的对象id都是2,这表明它们是到同一个对象的引用,也就是说我们虽然从tv1复制出tv2,但是遥控器并没有被复制,每台电视机都应该配有一个遥控器,而这里tv2和tv1共用一个遥控器,这显然是不合常理的。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>