双冒号 ::在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中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
一些php项目中比较通用的php自建函数的详解
Jun 06 PHP
php检测iis环境是否支持htaccess的方法
Feb 18 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
php中heredoc与nowdoc介绍
Dec 25 PHP
php文件上传简单实现方法
Jan 24 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
Jul 09 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
php操作xml并将其插入数据库的实现方法
Sep 08 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 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 session会话的安全性分析
2011/09/08 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
使用JQuery和s3captche实现一个水果名字的验证
2009/08/14 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
Sneaker Studio匈牙利:购买运动鞋
2018/03/26 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
经理职责范文
2013/11/08 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
安踏广告词改编版
2014/03/21 职场文书
志愿者宣传口号
2014/06/17 职场文书
商铺门前三包责任书
2014/07/25 职场文书
六年级学生评语大全
2014/12/26 职场文书
西安兵马俑导游词
2015/02/02 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技