双冒号 ::在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 daodb插入、更新与删除数据
Mar 19 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
php删除数组元素示例分享
Feb 17 PHP
php中cookie的使用方法
Mar 29 PHP
php中curl和file_get_content的区别
May 10 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
thinkphp模板输出技巧汇总
Nov 24 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
php版微信自定义回复功能示例
Dec 05 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
PHP中Cookie的使用详解(简单易懂)
Apr 28 PHP
PHP7 整型处理机制修改
Mar 09 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跨站攻击实例分析
2014/10/28 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
python常用函数详解
2016/09/13 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
django2笔记之路由path语法的实现
2019/07/17 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
python匿名函数的使用方法解析
2019/10/10 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
如何让python的运行速度得到提升
2020/07/08 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
股东协议书范本
2014/04/14 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
2014年安全员工作总结
2014/11/13 职场文书
表扬稿范文
2015/01/17 职场文书
护士实习自荐信
2015/03/06 职场文书
开学第一周总结
2015/07/16 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书