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 相关文章推荐
Windows下PHP的任意文件执行漏洞
Oct 09 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
php 删除记录同时删除图片文件的实现代码
May 12 PHP
php与paypal整合方法
Nov 28 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
May 27 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
PHP排序二叉树基本功能实现方法示例
May 26 PHP
thinkPHP实现基于ajax的评论回复功能
Jun 22 PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 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
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
用window.onerror捕获并上报Js错误的方法
2016/01/27 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
Python使用redis pool的一种单例实现方式
2016/04/16 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
对python的文件内注释 help注释方法
2018/05/23 Python
Python进阶:生成器 懒人版本的迭代器详解
2019/06/29 Python
Python上下文管理器全实例详解
2019/11/12 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
深入了解Python 变量作用域
2020/07/24 Python
关于python中remove的一些坑小结
2021/01/04 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
中层干部竞争上岗演讲稿
2014/01/13 职场文书
一年级语文教学反思
2014/02/13 职场文书
书香校园建设方案
2014/05/02 职场文书
代理人委托书
2014/08/01 职场文书
语文复习计划
2015/01/19 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书
小学感恩主题班会
2015/08/12 职场文书
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫