|
|
1
23
PHP在5.3之前没有名称空间,因此所有函数/变量都将在全局范围内,除非它们属于某个类。将它们作为静态成员放在类中对于没有名称空间是一种解决方法(这可能就是为什么您看到它们的数量很大的原因)。 通常,它们用于在单个对象中不太有用的函数,但在类级别上有一些用途(如其他答案中所述)。 |
|
|
2
6
最佳实践是尽可能避免使用它们,因为它们会破坏可测试性和可维护性。两篇伟大的文章详细阐述了: 澄清:在这个问题上似乎有很多误解。缺乏依赖注入是真正的问题。直接调用静态方法恰好是落入该陷阱的最常见方法之一。 |
|
|
3
5
静态方法用于
|
|
|
4
4
静态方法不需要实例(可能会返回一个实例),它或多或少类似于一个全局函数,只是它被放在类的命名空间中(因此避免与其他函数冲突),并且可以访问类的私有成员。 所以,只要对函数的这些属性感兴趣,就可以使用它。 |
|
|
5
3
对于静态方法的使用没有特定的PHP。 静态方法可以直接在类上调用-不需要实例化的对象。 因此,它们的主要用途是用于与类功能相关的方法,但不需要将现有实例用于其他代码。 一个常见的例子是一个自定义比较方法,它可以传递给(例如)uasort()函数来对类类型的对象数组进行排序。 |
|
|
6
2
您可以使用静态方法来获得更好的性能。 您不需要为每个用户创建对象,因为使用Web应用程序和使用多种方法和属性创建对象的速度较慢,需要更多的系统资源。 |
|
|
7
1
您不需要创建类的实例来使用它的静态方法。 |