双冒号 ::在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 相关文章推荐
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
Zend framework处理一个http请求的流程分析
Feb 08 PHP
php强制用户转向www域名的方法
Jun 19 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
PHP读取文件的常见几种方法
Nov 03 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
Nov 15 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 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 echo 输出字符串函数详解
2010/05/13 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
js判断是否是手机页面
2017/03/17 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
python实现可逆简单的加密算法
2019/03/22 Python
django写用户登录判定并跳转制定页面的实例
2019/08/21 Python
Python使用贪婪算法解决问题
2019/10/22 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
利用Python计算KS的实例详解
2020/03/03 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
回门宴父母答谢词
2014/01/26 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
学校捐款活动总结
2015/05/09 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js