灰儿 发表于 2016-11-29 14:56:13

PHP作用域限定符双冒号::的用法及意义

今天看江湖家居门户系统的源码,发现PHP类代码中常看到双冒号"::"操作符,这个是作用域限定操作符,是用一个双冒号"::"表示,它用来置顶类中不通作用域的级别。左边是作用域,右边是访问作用域的成员。

一,当调用静态属性和静态方法时
::与->的作用相同,只不过使用的对象不一样!::引用类里面的静态方法或者属性,而且不需要实例化!
建立一个类,并且建立一个静态属性$a,一个静态方法b,如下:class test {
    static public $a;
    static public function b() {}
}如果要调用静态属性$a,如下test::$a;注意,a前面需要带$符号,这一点与->符号不一样!如果要调用静态方法b,如下test::b(); 二,当调用自身类或者父类的属性或者方法时
首先建立一个父类class test {
    public function b() {}
}
然后建立一个子类继承父类
class tests extends test {
    public function cs() {}
}

当我们需要调用父类的方法b时
parent::b();当我们需要调用自身的方法cs时,有两种方法
$this->cs();

self::cs();


我遇到的大概就是以上两种情况,如果大家还遇到什么其他的情况,欢迎回帖补充哈!





页: [1]
查看完整版本: PHP作用域限定符双冒号::的用法及意义