Shawn_H
2016-07-04 18:32
object(Car)#3 (1)里的3是代表什么?
应该是object类Car实例化对象的次数;
比如var_dump当中,#后是2,它输出的是$b,$b是第二个实例化对象
所以到了$c,#后面变成了3
楼顶回答的不对,不是被实例化的次数。而是 对象的id. 就像数据库字段id,一样,每个对象都有自己的id.
<?php class Car1 { public $name = 'car1 name'; } class Car { public $name = 'car'; public function __clone() { $obj = new Car(); $obj->name = $this->name; } } $a = new Car(); $a->name = 'new car'; var_dump($a); $b = clone $a; var_dump($b); $c=new car1(); var_dump($c);
结果:
object(Car)#1 (1) {
["name"]=>
string(7) "new car"
}
object(Car)#2 (1) {
["name"]=>
string(7) "new car"
}
object(Car1)#3 (1) {
["name"]=>
string(9) "car1 name"
}
结果 car1 才被实例化了1次,他的 #后面变成了3...
你可以添加$d = clone ($c);
var_dump($d);
可以看到,#号输出分别为2,4,3;印证了猜想
不知道
PHP进阶篇
181835 学习 · 2577 问题
相似问题