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进阶篇
181959 学习 · 2668 问题
相似问题