双冒号 ::在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 VS ASP
Oct 09 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
PHP函数addslashes和mysql_real_escape_string的区别
Apr 22 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
PHP中文乱码解决方案
Mar 05 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
Dec 08 PHP
php关闭warning问题的解决方法
May 17 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
Nov 04 PHP
PHP code 验证码生成类定义和简单使用示例
May 27 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下封装较好的数字分页方法
2010/11/23 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
js 浏览器事件介绍
2012/03/30 Javascript
Javascript中的delete介绍
2012/09/02 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
2016/06/06 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
wxPython之解决闪烁的问题
2018/01/15 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
python写日志文件操作类与应用示例
2019/07/01 Python
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
python实现门限回归方式
2020/02/29 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
生产管理的三大手法
2013/11/11 职场文书
店长岗位的工作内容
2013/11/12 职场文书
三八妇女节标语
2014/10/09 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
学生会自荐信
2019/05/16 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android