Bunlar benim numaraları:
Starting allocation 62480
Allocated memory for new A() 328
Allocated memory for new B() 496
Böylece x < y
Bu iki sınıf tanımları eşdeğerdir
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;
}
Anlamı o daha sonra bellek kullanımı, yeni B kullanarak aynı olacağını C o içine B tanımını değiştirmek () veya yeni C () vardı.
Kendiniz çalıştırmak için (örnek olarak) bu kodu kullanabilirsiniz
$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";