双冒号 ::在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 相关文章推荐
PHP中的正规表达式(二)
Oct 09 PHP
php Try Catch异常测试
Mar 01 PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
按上下级层次关系输出内容的PHP代码
Jul 17 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
Jun 24 PHP
php解析html类库simple_html_dom(详细介绍)
Jul 05 PHP
PHP中的多行字符串传递给JavaScript的两种方法
Jun 19 PHP
浅谈php提交form表单
Jul 01 PHP
php实现curl模拟ftp上传的方法
Jul 29 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
Oct 08 PHP
Yii框架分页实现方法详解
May 20 PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 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应用提速面面观
2006/10/09 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
js的event详解。
2006/09/06 Javascript
双击滚屏-常用推荐
2006/11/29 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
python刷投票的脚本实现代码
2014/11/08 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
Python实现的读写json文件功能示例
2018/06/05 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Python实现名片管理系统
2020/02/14 Python
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
战略合作意向书范本
2014/04/01 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
市场营销计划书
2019/04/24 职场文书
2019求职信大礼包
2019/05/15 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书