【发布时间】:2017-11-05 06:41:51
【问题描述】:
众所周知,静态方法可以在不实例化类的情况下调用。所以我想知道静态方法是否会在我使用它们之前被加载到内存中。如果那样的话,在我看来,我应该使用更多的实例方法而不是太多的静态方法。有人建议吗?我对PHP的底层机制不熟悉。
【问题讨论】:
-
是的,您应该避免在 PHP 中使用过多的静态方法,但不是出于内存管理的原因。因为这是一个信号,您没有正确执行 OOP。从长远来看,这将比使用 ram 的几个额外字节(我不确定是否是这种情况)对您造成的伤害更大。
-
使用静态方法或使用对象的问题是您尝试实现的逻辑的实际范围之一。这应该是你首先关心的:当它变得更复杂时,人们可以理解逻辑,你能够实现特殊情况,而不会因为太多的运行时参数而使代码显得臃肿。像内存占用这样的问题不应该总是被忽略,但现在它们通常不再那么重要了。如果您在此处遇到问题的环境中工作,那您为什么还要使用 OPP?
-
当然,从OOP的角度来看,我应该避免太多的静态方法。只是想知道在我使用它们之前它们是否会被加载到内存中??
-
静态方法只是一个具有花哨名称的常规函数(如果不是
public,则访问受限)。静态方法不是 OOP,它们是变相的过程代码。主脚本的代码在页面被请求时加载到内存中并编译。当(如果)include语句被执行时,它会加载到内存中并编译include-d 文件。
标签: php static-methods