PHP 中的静态方法

2022-08-30 15:57:35

为什么在PHP中,你可以通过某个类的实例访问静态方法,但不能仅仅通过类型名称?

更新:我是.net开发人员,但我也与php开发人员合作。最近我发现了这个关于从实例调用的静态方法的时刻,并且无法理解为什么它可以是有用的。

例:

class Foo
{
    public static Bar()
    {
    }
}

我们可以接受这样的方法:

var $foo = new Foo();
$foo.Bar(); // ??????

答案 1

在 PHP 中

例如,使用new关键字实例化类;

$MyClass = new MyClass();

,则可以使用作用域解析运算符或对象引用运算符访问静态方法或属性。例如,如果类包含静态方法,则可以通过任一方式访问它。MyClassFoo()

$MyClass->Foo();

MyClass::Foo()

唯一的规则是静态方法或属性不在对象上下文中。例如,不能在静态方法内部使用。$this


答案 2
Class Do {
  static public function test() {
      return 0;
  }
}

像这样使用:

echo Do::test();

推荐