双冒号 ::在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 相关文章推荐
一个从别的网站抓取信息的例子(域名查询)
Oct 09 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
php根据身份证号码计算年龄的实例代码
Jan 18 PHP
让codeigniter与swfupload整合的最佳解决方案
Jun 12 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 PHP
PHP借助phpmailer发送邮件
May 11 PHP
学习php设计模式 php实现合成模式(composite)
Dec 08 PHP
php读取和保存base64编码的图片内容
Apr 22 PHP
PHP实现限制IP访问及提交次数的方法详解
Jul 17 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
php中配置文件保存修改操作 如config.php文件的读取修改等操作
May 12 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学习之 数组声明
2011/06/09 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
Javascript removeChild()删除节点及删除子节点的方法
2015/12/27 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
js canvas实现红包照片效果
2018/08/21 Javascript
setTimeout与setInterval的区别浅析
2019/03/23 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
Pycharm保存不能自动同步到远程服务器的解决方法
2019/06/27 Python
安装docker-compose的两种最简方法
2019/07/30 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
学子宴答谢词
2014/01/25 职场文书
测试工程师职业规划书
2014/02/06 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL