何时在 PHP 中使用静态修饰符
最近做一些代码审查,我遇到了许多类,其中有大量的静态方法......我似乎不明白为什么?因此,我的问题:
在 PHP 中使用静态方法的最佳实践是什么?
什么时候想使用它们,什么时候不应该使用它们?
运行时处理静态方法的具体区别是什么?它们会影响性能或内存占用量吗?
最近做一些代码审查,我遇到了许多类,其中有大量的静态方法......我似乎不明白为什么?因此,我的问题:
在 PHP 中使用静态方法的最佳实践是什么?
什么时候想使用它们,什么时候不应该使用它们?
运行时处理静态方法的具体区别是什么?它们会影响性能或内存占用量吗?
最近做一些代码审查,我遇到了许多类,其中有大量的静态方法......我似乎无法理解为什么
PHP在5.3之前没有命名空间,所以所有函数/变量都将在全局范围内,除非它们属于某个类。将它们作为静态成员放在类中是没有命名空间的解决方法(这可能就是为什么您看到它们的数量“有效”的原因)
通常,它们用于在单个对象中没有多大用处的函数,但在类级别有一些用处(如其他答案所述)。
最佳做法是尽可能避免使用它们,因为它们会破坏可测试性和可维护性。两本精彩的读物,详细说明了:
澄清:在这个问题上似乎有很多误解。缺乏依赖注入是真正的问题。直接调用静态方法恰好是陷入该陷阱的最常见方法之一。