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


What is the correct way to call a static method in PHP?

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

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting T_VARIABLE in /some/path/SomeClass.class.php on line 15

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

如果您在类的上下文中,则

self::method();
static::method();

两者都将工作,具有与late static binding相关的不同行为。

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

SomeClass::method();

否则,你会得到一个愚蠢的希伯来语错误T_PAAMAYIM_NEKUDOTAYIM,它在英语中的意思是"双冒号"。

使用

ClassName::some_method()

调用静态方法(不使用static关键字),或者,如果您在该类中,则使用

self::some_method()

其中CCD_ 5是关键字(即在另一方法内部)。