在PHP中调用静态方法的正确方法是什么?

Mar*_*ark 1 php static class

当我通过static::some_method();它调用我的静态方法时,给出了以下错误:

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting T_VARIABLE in /some/path/SomeClass.class.php on line 15
Run Code Online (Sandbox Code Playgroud)

如果我用类名替换static当然有效,但是在不使用类名的情况下调用静态方法的正确方法是什么?

Umb*_*lla 8

如果你在班级的背景下那么

self::method();
static::method();
Run Code Online (Sandbox Code Playgroud)

......两者都有效,不同的行为有关late static binding.

如果您不在类的上下文中,则需要使用该方法所属的类名:

SomeClass::method();
Run Code Online (Sandbox Code Playgroud)

否则你会得到那个愚蠢的希伯来语错误T_PAAMAYIM_NEKUDOTAYIM,这意味着英语中的"双冒号".