双冒号 ::在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下判断数组中是否存在相同的值array_unique
Mar 25 PHP
php session 检测和注销
Mar 16 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
Apr 12 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
Nov 21 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
学习php设计模式 php实现建造者模式
Dec 07 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 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
pjblog修改技巧汇总
2007/03/12 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
javascript关于继承解析
2016/05/10 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
ES6 十大特性简介
2020/12/09 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
python实现简单的TCP代理服务器
2014/10/08 Python
Python实现ssh批量登录并执行命令
2016/10/25 Python
详解python 发送邮件实例代码
2016/12/22 Python
Python浅复制中对象生存周期实例分析
2018/04/02 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
keras得到每层的系数方式
2020/06/15 Python
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
房屋转让协议书范本
2014/04/11 职场文书
学生安全责任书
2014/04/15 职场文书
实习生评语
2014/04/26 职场文书
相亲大会策划方案
2014/06/05 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
看雷锋电影观后感
2015/06/10 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android