双冒号 ::在PHP中的使用情况


Posted in PHP onNovember 05, 2015

前几天在百度知道里面看到有人问PHP中双冒号::的用法,当时给他的回答比较简洁因为手机打字不大方便!今天突然想起来,所以在这里总结一下我遇到的双冒号::在PHP中使用的情况!

双冒号操作符即作用域限定操作符Scope Resolution Operator可以访问静态、const和类中重写的属性与方法。
在类定义外使用的话,使用类名调用。在PHP 5.3.0,可以使用变量代替类名。

Program List:用变量在类定义外部访问

<?php
class Fruit {
 const CONST_VALUE = 'Fruit Color';
}
$classname = 'Fruit';
echo $classname::CONST_VALUE; // As of PHP ..
echo Fruit::CONST_VALUE;
?>
Program List:在类定义外部使用::
<?php
class Fruit {
 const CONST_VALUE = 'Fruit Color';
}
class Apple extends Fruit
{
 public static $color = 'Red';
 public static function doubleColon() {
  echo parent::CONST_VALUE . "\n";
  echo self::$color . "\n";
 }
}
Apple::doubleColon();
?>

程序运行结果:

Fruit Color Red

Program List:调用parent方法

<?php
class Fruit
{
 protected function showColor() {
  echo "Fruit::showColor()\n";
 }
}
class Apple extends Fruit
{
 // Override parent's definition
 public function showColor()
 {
  // But still call the parent function
  parent::showColor();
  echo "Apple::showColor()\n";
 }
}
$apple = new Apple();
$apple->showColor();
?>

程序运行结果:

Fruit::showColor()
Apple::showColor()

Program List:使用作用域限定符

<?php
 class Apple
 {
  public function showColor()
  {
   return $this->color;
  }
 }
 class Banana
 {
  public $color;
  public function __construct()
  {
   $this->color = "Banana is yellow";
  }
  public function GetColor()
  {
   return Apple::showColor();
  }
 }
 $banana = new Banana;
 echo $banana->GetColor();
?>

程序运行结果:

Banana is yellow

Program List:调用基类的方法

<?php
class Fruit
{
 static function color()
 {
  return "color";
 }
 static function showColor()
 {
  echo "show " . self::color();
 }
}
class Apple extends Fruit
{
 static function color()
 {
  return "red";
 }
}
Apple::showColor();
// output is "show color"!
?>

程序运行结果:

show color

以上内容给大家详解了::在PHP中的使用情况,希望大家喜欢。

PHP 相关文章推荐
一个好用的分页函数
Nov 16 PHP
使用Xdebug调试和优化PHP程序之[1]
Apr 17 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
php中的Base62类(适用于数值转字符串)
Aug 12 PHP
php页面防重复提交方法总结
Nov 25 PHP
php教程之phpize使用方法
Feb 12 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
php将图片保存为不同尺寸图片的图片类实例
Mar 30 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
php-fpm服务启动脚本的方法
Apr 27 PHP
PHP中检查isset()和!empty()函数的必要性
Feb 13 PHP
PHP实现百度人脸识别
May 06 PHP
php根据用户语言跳转相应网页
Nov 04 #PHP
非常全面的php日期时间运算汇总
Nov 04 #PHP
php对文件夹进行相关操作(遍历、计算大小)
Nov 04 #PHP
PHP实现HTML页面静态化的方法
Nov 04 #PHP
php实现网站留言板功能
Nov 04 #PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 #PHP
两种php去除二维数组的重复项方法
Nov 04 #PHP
You might like
详解PHP匿名函数与注意事项
2016/03/29 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
python简单程序读取串口信息的方法
2015/03/13 Python
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
python多进程并行代码实例
2019/09/30 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
python如何绘制疫情图
2020/09/16 Python
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
客户代表实习人员自我鉴定
2013/09/27 职场文书
历史教育专业个人求职信
2013/12/13 职场文书
客服主管岗位职责
2013/12/13 职场文书
班级文化建设标语
2014/06/23 职场文书
2015年试用期工作总结
2014/12/12 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
小学中队长竞选稿
2015/11/20 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫