做一些代码审查最近我碰到了一些有在他们的静态方法显著数类......我似乎无法把握,为什么? 因此,我的问题:
什么是在PHP中使用静态方法有关最佳做法?
一个何时需要使用它们的时候会一个人不应该使用它们?
什么是运行时如何处理静态方法的具体区别? 他们是否影响性能或内存占用?
做一些代码审查最近我碰到了一些有在他们的静态方法显著数类......我似乎无法把握,为什么? 因此,我的问题:
什么是在PHP中使用静态方法有关最佳做法?
一个何时需要使用它们的时候会一个人不应该使用它们?
什么是运行时如何处理静态方法的具体区别? 他们是否影响性能或内存占用?
做一些代码审查最近我碰到了一些有在他们的静态方法显著数类......我似乎无法把握,为什么
PHP 5.3之前没有命名空间,所以所有的函数/变量将在全球范围内,除非它们在某些类属。 他们将在一个类的静态成员是没有命名空间的解决方法(这可能就是您在“显著”号看见他们)
一般情况下,它们用于不在单个对象很多有用的功能,但具有一流水平的一些使用(在其他的答案说的)
最好的做法是避免使用它们只要有可能,因为他们杀的可测试性和可维护性。 两个伟大的读取说明一下:
澄清:人们似乎对这个问题有很多误解。 缺乏依赖注入的是真正的问题。 直接调用静态方法恰好是落入陷阱最常见的方式之一。
静态方法用于
静态方法不需要实例(并可能返回一个代替),并或多或少相似,但它放在类全局函数命名空间(并因此避免与其他职能的冲突),并可以访问类的私有成员。
所以,当你感兴趣的函数的这些特性使用它。
有具体介绍一下使用的静态方法没什么PHP。
静态方法可以直接在类调用 - 无需实例化对象。
因此,他们的主要用途是对于那些涉及到类的功能,但不需要现有的实例是使用了其他代码的方法。
一个常见的例子是可以传递到,比方说,uasort()函数来排序类的类型的对象的阵列的自定义比较方法。
你可以使用静态方法获得更好的性能。 你不需要为使用Web应用程序和创建具有多种方法和属性的对象是慢,需要更多的系统资源,每个用户创建对象。
你并不需要创建类的实例即可使用其静态方法。