热搜词
发表于 2016-11-29 14:56:13 | 显示全部楼层 |阅读模式
今天看江湖家居门户系统的源码,发现PHP类代码中常看到双冒号"::"操作符,这个是作用域限定操作符,是用一个双冒号"::"表示,它用来置顶类中不通作用域的级别。左边是作用域,右边是访问作用域的成员。

一,当调用静态属性和静态方法时
::与->的作用相同,只不过使用的对象不一样!::引用类里面的静态方法或者属性,而且不需要实例化!
建立一个类,并且建立一个静态属性$a,一个静态方法b,如下:
  1. class test {  
  2.     static public $a;  
  3.     static public function b() {}  
  4. }  
复制代码

如果要调用静态属性$a,如下

  1. test::$a;
复制代码

注意,a前面需要带$符号,这一点与->符号不一样!

如果要调用静态方法b,如下

  1. test::b();
复制代码
二,当调用自身类或者父类的属性或者方法时

首先建立一个父类
  1. class test {  
  2.     public function b() {}  
  3. }  
复制代码

然后建立一个子类继承父类
  1. class tests extends test {  
  2.     public function cs() {}  
  3. }  
复制代码


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

  1. self::cs();  
复制代码



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





全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-24 17:30 , Processed in 0.160668 second(s), 23 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team