静态方法会影响php对象的大小吗?

时间:2010-03-17 09:25:48

标签: php static

如果我有一个名为myclass的类,那么类中的静态方法会影响它在内存中的大小吗?

class myclass{
public $instancevar;
public static function method1(){}
public static function method2(){}
}

添加更多静态方法会使myclass的实例更大吗?

我知道静态方法是在类的实例之间共享的,但是会添加更多或更大的静态方法会对内存中对象的大小产生影响吗?类似地,如果我将一个实例作为参数传递给方法,那么有更多的静态方法会影响执行时间吗?

2 个答案:

答案 0 :(得分:1)

我甚至会说成员方法也不会增加对象的内存占用量。如果我序列化一个对象,那么只序列化它作为实例的类和它的属性具有哪些值的信息。这足以确定对象的行为。

您可以计算对象described in this question的大小。

您将看到添加或删除静态或非静态方法不会更改对象的大小。


总结:如果使用对象操作的静态方法而不是直接使用对象方法,则什么也得不到。

答案 1 :(得分:0)

静态方法不应增加对象的内存占用量。

问题是 - 您是否会注意到静态方法是否确实增加了对象的内存占用量?