静态类和静态类方法中的方法是否具有相同的callabilty?

时间:2011-05-06 21:27:07

标签: php class static static-methods

我想我的问题是

static class example1{
    function example1_function(){};     
}

class example2{
    static function example2_function(){};
}

导致相同的结果,example1->example1_function()example2->example2_function()具有相同的callabilty。两者都被定义为静态和可用吗?

3 个答案:

答案 0 :(得分:3)

PHP不允许您声明一个静态类。

要调用静态方法,必须使用::运算符。

答案 1 :(得分:2)

您不能将类声明为静态类,如此处其他成员所述,但是有一种方法可以阻止类成为对象,您可以使用abstract关键字指定对象不应该使用new关键字进行实例化,这有利于继承等。

abstract class Something
{
}

执行new Something会触发错误,说明您无法实例化该类,然后您可以声明静态方法,如下所示:

abstract class Something
{
    public static function Else()
    {
    }
}

您仍需要将方法声明为static,这就是它的方式。

然后你就可以这样使用:

Something::Else();

希望这能清除一些事情

答案 2 :(得分:0)

正如评论中已经提到的那样,static关键字不会以这种方式用于类(语法)。

http://php.net/manual/en/language.oop5.static.php