PHP的范围解析操作符(::)的含义分析说明


Posted in PHP onJuly 03, 2011

今天看到几个有关PHP的符号。一个是@,这个加在一个变量的前面,是为了抑制PHP解释器报错,也就是说即使出了错也不会显示出来。
还有一个更重要的符号PHP的范围解析操作符(::)
在没有声明任何实例的情况下访问类中的函数或者基类中的函数和变量很有用处。而 :: 运算符即用于此情况。

<?php 
class A { 
function example() { 
echo "I am the original function A::example().<br />\n"; 
} 
} 
class B extends A { 
function example() { 
echo "I am the redefined function B::example().<br />\n"; 
A::example(); 
} 
} 
// A 类没有对象,这将输出 
// I am the original function A::example().<br /> 
A::example(); 
// 建立一个 B 类的对象 
$b = new B; 
// 这将输出 
// I am the redefined function B::example().<br /> 
// I am the original function A::example().<br /> 
$b->example(); 
?>

上面的例子调用了 A 类的函数 example(),但是这里并不存在 A 类的对象,因此不能这样用 $a->example() 或者类似的方法调用 example()。反而我们将 example() 作为一个类函数来调用,也就是说,作为一个类自身的函数来调用,而不是这个类的任何对象。
这里有类函数,但没有类的变量。实际上,在调用函数时完全没有任何对象。因而一个类的函数可以不使用任何对象(但可以使用局部或者全局变量),并且可以根本不使用 $this 变量。
上面的例子中,类 B 重新定义了函数 example()。A 类中原始定义的函数 example() 将被屏蔽并且不再生效,除非使用 :: 运算符来访问 A 类中的 example() 函数。如:A::example()(实际上,应该写为 parent::example(),下一章介绍该内容)。
就此而论,对于当前对象,它可能有对象变量。因此可以在对象函数的内部使用 $this 和对象变量。
PHP 相关文章推荐
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
May 25 PHP
PHP array_multisort()函数的使用札记
Jul 03 PHP
解析数组非数字键名引号的必要性
Aug 09 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 PHP
PHP 快速排序算法详解
Nov 10 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
Jul 03 #PHP
PHP array_multisort()函数的使用札记
Jul 03 #PHP
PHP导出MySQL数据到Excel文件(fputcsv)
Jul 03 #PHP
PHP include_path设置技巧分享
Jul 03 #PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 #PHP
php header Content-Type类型小结
Jul 03 #PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 #PHP
You might like
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
JS重要知识点小结
2011/11/06 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
js获取ip和地区
2017/03/10 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
Python NumPy库安装使用笔记
2015/05/18 Python
简单学习Python time模块
2016/04/29 Python
Python2随机数列生成器简单实例
2017/09/04 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
为什么称python为胶水语言
2020/06/16 Python
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
佳能德国网上商店:Canon德国
2017/03/18 全球购物
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
物业电工岗位职责
2013/11/20 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
绿色环保演讲稿
2014/05/10 职场文书
市场推广策划方案
2014/06/02 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
初中政治教师教学反思
2016/02/23 职场文书
JS不要再到处使用绝对等于运算符了
2021/04/30 Javascript
详解redis分布式锁的这些坑
2021/05/19 Redis
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python