什么是操作符“::”?
操作符“::”相比伪变量$this只能在类的内部使用来说更为强大。操作符“::”可以在没有任何声明任何实例的情况下访问类中的成员方法或成员变量。
操作符“::”语法:
使用"::"操作符的通用语法为:
关键字::变量名/常量名/方法名
注意事项:
这里的关键字不再是public、private、protected或者static等,而是以下三种情况:
(1)parent :可以调用父类中的成员变量、成员方法和常量;
(2)self:可以调用当前类中的静态成员和常量;
(3)类名:可以调用本类中的变量、常量和方法。
友情提醒:
有关静态变量(方法)的相关内容可以参见本站的文章:http://www.php.cn/php-weizijiaocheng-360326.html
上面简单的介绍了下操作符"::"的基本内容,下面我们通过一个简单的实例来更加形象具体的了解操作符“::”的用法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php header("content-type:text/html;charset=utf-8"); class Hero{ //定义类 const CHARACTER = '奥利安娜'; //定义常量,用关键字const function __construct() //父类中的构造函数 { echo '5楼要玩中单'.Hero :: CHARACTER .'不给就送'; //输出常量 echo '<br/>'; } } class I_Hreo extends Hero{ //创建子类I_Hreo继承父类 const ROLE = '亚索'; //创建常量 function __construct() //子类中创建构造函数 { parent :: __construct(); //引用父类中的构造函数 echo '4楼中单' . self :: ROLE . '贼6'; //子类中输出 } } $gamer = new I_Hreo(); //实例化 |
实例解释:
在上述实例中,我们先创建了一个父类Hero,定义了常量,创建了构造函数,接着又创建了一个子类 I_Hreo去继承父类 Hreo,且在子类中也定义了常量。接下来就是重点了,我们引用父类中的构造函数。上面我们介绍了三种情况,parent :可以调用父类中的成员变量、成员方法和常量。这里我们调用的是父类中的方法,所以使用parent :: __construct()。接着,我们在子类的构造方法中输出子类中定义的常量,调用当前类的关键字,上面也介绍过,self:可以调用当前类中的静态成员和常量,所以这里我们用self :: ROLE,最后格式化,运行一下。
结果见下图:
5楼要玩中单奥利安娜不给就送
4楼中单亚索贼6
以上就是对操作符'::'用法的简单讲述,希望可以帮助到大家。