双冒号 ::在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基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
一个PHP模板,主要想体现一下思路
Dec 25 PHP
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
Dec 31 PHP
PHP中strtotime函数使用方法详解
Nov 27 PHP
PHP学习笔记之字符串编码的转换和判断
May 22 PHP
windwos下使用php连接oracle数据库的过程分享
May 26 PHP
PHP根据两点间的经纬度计算距离
Oct 31 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
Joomla开启SEF的方法
May 04 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 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
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
Python3遍历目录树实现方法
2015/05/22 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
python3获取url文件大小示例代码
2019/09/18 Python
利用python实现AR教程
2019/11/20 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
趣味比赛活动方案
2014/02/15 职场文书
工地标语大全
2014/06/18 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
文明家庭事迹材料
2014/12/20 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
在校学生证明格式
2015/06/24 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python