php中不同的类访问规则

时间:2014-01-16 13:01:39

标签: php class methods

我是php开发类概念的新手,我在类文件中调用一个方法,如

**ClassName::method_name();**     像这样,但它不起作用,并得到一个错误。当我创建该类的对象时,如**$object = new ClassName();**并通过此函数调用该方法     **$object->method_name();**     它工作正常。

我无法理解这个伎俩。

任何人都可以清楚我的困惑吗? 谢谢,

biswajitGhosh

2 个答案:

答案 0 :(得分:2)

::运算符用于访问静态方法和属性,->运算符用于访问类实例的方法和属性。

静态方法或属性是属于类本身的方法或属性,无论您创建的类的实例数是多少,都不会更改。

实例方法或属性仅应用于类的特定实例,并且一个实例中的更改不会影响另一个实例。

答案 1 :(得分:1)

如果要使用::表示法,则需要将方法定义为静态。

class ClassName {
    public static function method_name() {
        ...
    }
}

现在您可以致电ClassName::method_name();

阅读:http://www.php.net/manual/en/language.oop5.static.php