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

时间:2012-02-27 18:43:59

标签: php class static

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

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

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

2 个答案:

答案 0 :(得分:8)

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

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

...将同时运作,与late static binding相关的行为不同。

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

SomeClass::method();

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

答案 1 :(得分:2)

使用

ClassName::some_method()

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

self::some_method()

其中self是关键字(即在另一种方法中)。