什么方法应该是静态的? PHP

时间:2012-09-23 12:16:40

标签: php oop class methods

我正在使用PHP作为我的编程语言。我真的不明白静态方法和变量的使用。

  1. 什么方法应该是静态的?/什么方法应该是静态的?
  2. 如何确定哪种方法应该是静态的?
  3. 优点和缺点静态方法和变量?
  4. 由于

3 个答案:

答案 0 :(得分:2)

将类属性或方法声明为静态使它们可以访问,而无需实例化类。声明为static的属性无法使用实例化的类对象访问(尽管静态方法可以)。

当您处理基于OOP的大型项目时,您无疑将使用许多类(父类和子类)。这样做的一个不幸结果是,为了访问来自不同类的元素,必须手动传递每个类(或者更糟糕的是,将实例存储在全局变量中)。这可能令人沮丧,并且可能导致代码混乱和整体糟糕的项目设计。值得庆幸的是,可以从任何上下文(即脚本中的任何位置)访问静态元素,因此您可以访问这些方法,而无需将类的实例从对象传递到对象。

还要检查此Does static method in PHP have any difference with non-static method?

答案 1 :(得分:2)

当一个方法没有绑定到实例变量时,它应该是静态的。如果它正在进行平面处理并从函数输入中获取所有变量。它可以标记为静态。

它的优点是您无需创建实例来调用功能,从而节省内存。

答案 2 :(得分:0)

将类属性或方法声明为静态使它们可以访问,而无需实例化类。声明为static的属性无法使用实例化的类对象

进行访问
<?php class Foo {
    public static function aStaticMethod() {
        // ...
    } }

$classname = 'Foo'; $classname::aStaticMethod(); // ( PHP 5.3.0) ?> 

“它可以在没有OBJECT的情况下启动”