本文实例讲述了php 范围解析操作符(::)用法。分享给大家供大家参考,具体如下:
范围解析操作符 (::)
范围解析操作符(也可称作 paamayim nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。
当在类定义之外引用到这些项目时,要使用类名。
自 php 5.3.0 起,可以通过变量来引用类,该变量的值不能是关键字(如 lf,parent 和 static)。
把 paamayim nekudotayim 选作双冒号操作符的名字似乎有些奇怪。然而,这是 ze腊肉的做法nd 开发小组在写 zend engine 0.5(被用于 php 3 中)时所作出的决定。事实上这个词在希伯莱文就是双冒号的意思。
在类的外部使用 ::
lf,parent 和 static 这三个特殊的关键字是用于在类定义的内部对其属性或方法进行访问的。美文文章
<?phpclass myclass { const const_value = 'a constant value';}$classname = 'myclass';echo $classname::const_value; // 自 php 5.3.0 起echo myclass::const_value;
在类定义的内部使用 ::
当一个子类覆盖其父类中的方法时,php 不会调用父类中已被覆盖的方法。是否调用父类的方法取决于子类。这种机制也作用于构造函数和析构函数,重载以及魔术方法。
<?phpclass otherclass extends myclass{ public static $my_static = 'static var'; public static function doublecolon() { echo parent::const_value . "\n"; echo s精忠岳飞主题曲elf::$my_static . "\n"; }}$classname = 'otherclass';echo $classname::doublecolon(); // 自 php 5.3.0 起otherclass::doublecolon();
调用父类的方法
<?phpclass myclass{ protected function myfunc() { echo "myclass::myfunc()\n"; }}class otherclass extends myclass{ // 覆盖了父类的定义 public function myfunc() { // 但还是可以调用父类中被覆盖的方法 parent::myfunc(); echo "otherclass::myfunc()\n"; }}$class = new otherclass();$class->myfu骂人的话越难听越好nc();
我最高兴的一件事运行结果:
myclass::myfunc()
otherclass::myfunc()
本文发布于:2023-04-08 17:14:56,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/aa2b96fc84d8baeec609d4fc5ae37b05.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】.doc
本文 PDF 下载地址:PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】.pdf
留言与评论(共有 0 条评论) |