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初学者头疼问题总结
Jul 08 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
PHP可变函数的使用详解
Jun 14 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
浅析php原型模式
Nov 25 PHP
Zend Framework实现多文件上传功能实例
Mar 21 PHP
php HTML无刷新提交表单
Apr 05 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
ThinkPHP中session函数详解
Sep 14 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 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
多人战的战术与战略
2020/03/04 星际争霸
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
PHP数组实例详解
2016/06/26 PHP
php中yii框架实例用法
2020/12/22 PHP
document.all与WEB标准
2020/05/13 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
javascript scrollTop正解使用方法
2013/11/14 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
深究AngularJS之ui-router详解
2017/06/13 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
浅谈五大Python Web框架
2017/03/20 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
进修护士自我鉴定
2013/10/14 职场文书
满月酒答谢词
2014/01/14 职场文书
任命书怎么写
2014/06/04 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
企业员工辞职信范文
2015/05/12 职场文书
党章学习心得体会2016
2016/01/14 职场文书
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS
使用python绘制横竖条形图
2022/04/21 Python
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android