双冒号 ::在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自动更新新闻DIY
Oct 09 PHP
菜鸟学PHP之Smarty入门
Jan 04 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 PHP
php expects parameter 1 to be resource, array given 错误
Mar 23 PHP
php适配器模式介绍
Aug 14 PHP
深入PHP FTP类的详解
Jun 13 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
CodeIgniter生成静态页的方法
May 17 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
PHP设计模式之组合模式定义与应用示例
Feb 01 PHP
Yii 框架使用数据库(databases)的方法示例
May 19 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 和 MySQL 基础教程(三)
2006/10/09 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
pyqt5简介及安装方法介绍
2018/01/31 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
Django-migrate报错问题解决方案
2020/04/21 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
什么是TCP/IP
2014/07/27 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
高中军训感想800字
2014/02/23 职场文书
文员求职信
2014/07/15 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
文艺晚会开场白
2015/05/29 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书