これは、以下の推論を描くために使用したコードとその出力です。
class a {
public $var1;
public $var2;
}
$obj0 = new a;
var_dump($obj0);
class b {
public $var1;
public $var2;
public $var3;
}
$obj1 = new b;
var_dump($obj1);
$obj2 = new stdClass;
var_dump($obj2);
$obj3 = new stdClass;
var_dump($obj3);
$obj4 = new stdClass;
var_dump($obj4);
$obj5 = new stdClass;
var_dump($obj5);
var_dump(new stdClass);
$obj6 = new stdClass;
var_dump($obj6);
出力:
object(a)#1 (2) {
["var1"]=> NULL
["var2"]=> NULL
}
object(b)#2 (3) {
["var1"]=> NULL
["var2"]=> NULL
["var3"]=> NULL
}
object(stdClass)#3 (0) {
}
object(stdClass)#4 (0) {
}
object(stdClass)#5 (0) {
}
object(stdClass)#6 (0) {
}
object(stdClass)#7 (0) {
}
object(stdClass)#7 (0) {
}
オブジェクトの行の#<some-number>
隣は実際object(someClass)
にはです。どこ、var_dump
#<count>
countは、これまでに作成されたオブジェクトが属するクラスに関係なく、オブジェクトのオブジェクト/ zvalの数です。これは、作成されたすべてのオブジェクトに対してインクリメントを続け、zvalのrefcountがゼロに達すると1ずつデクリメントされます。つまり、ガベージコレクションです。
私は正しいですか?