这是我的号码:
Starting allocation 62480
Allocated memory for new A() 328
Allocated memory for new B() 496
因此x < y
这两个类定义是等价的
class B extends A {
public $m = 1;
public $n = 2;
}
class C {
public $x = 5;
public $y = 6;
public $z = 7;
public $m = 1;
public $n = 2;
}
也就是说,是你改变B的定义成的C则内存使用情况与使用新的B()或新的C()完全相同。
要运行它自己使用此代码(作为一个例子)
$start = memory_get_usage();
echo "Starting allocation $start\n";
$a = new A();
$diff = memory_get_usage() - $start;
echo "Allocated memory for new A() $diff\n";
$b = new B();
$diff = memory_get_usage() - $start - $diff;
echo "Allocated memory for new B() $diff\n";
吹毛求疵:它更像是“'$ B' *是*的A,但更多的东西”比“有一个内部的实例”。 :) – deceze 2009-12-14 08:33:29