PHP [OOP]:继承的内存分配
请看下面的代码:
class A {
public x = 5;
public y = 6;
public z = 7;
}
class B extends A {
public m = 1;
public n = 2;
}
$a = new A();
$b = new B()
从上面的代码中让$a分配x内存量和$b正在分配 y 内存量;
现在我的问题是下面哪一个是正确?
x> y
x <是的
Please see the code bellow:
class A {
public x = 5;
public y = 6;
public z = 7;
}
class B extends A {
public m = 1;
public n = 2;
}
$a = new A();
$b = new B()
From the above code let $a is allocating x amount of memory and $b is allocating y amount of memory;
Now my question is which one is correct from bellow?
x > y
x < y
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这些是我的数字:
因此
x < y
这两个类定义是等效的,
这意味着如果您将 B 的定义更改为 C 的定义,那么使用 new B() 或 new C() 的内存使用量将完全相同。
要自己运行它,请使用此代码(作为示例)
These are my numbers:
Thus
x < y
These two class definitions are equivalent
Meaning that were you to change the definition of B into that of C then the memory usage would be the exact same for using new B() or new C().
To run it yourself use this code (as an example)
您可以使用 memory_get_usage 函数来调查此问题。
You can investigate this by using the memory_get_usage function.
它应该是公共$x、$y、$z。
而 $b 占用的内存较多,因为它里面有 A 的实例。
It should be public $x, $y, $z.
And $b takes up more memory because it has an instance of A inside.