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 相关文章推荐
Zend Guard一些常见问题解答
Sep 11 PHP
php Xdebug 调试扩展的安装与使用.
Mar 13 PHP
php 广告调用类代码(支持Flash调用)
Aug 11 PHP
使用php批量删除数据库下所有前缀为prefix_的表
Jun 09 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
PHP实现文件下载详解
Nov 27 PHP
php实现在限定区域里自动调整字体大小的类实例
Apr 02 PHP
详解YII关联查询
Jan 10 PHP
解读PHP的Yii框架中请求与响应的处理流程
Mar 17 PHP
PHP延迟静态绑定的深入讲解
Apr 02 PHP
PHP函数积累总结
Mar 19 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 XML数据解析代码
2010/05/26 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
python使用百度翻译进行中翻英示例
2014/04/14 Python
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
Python实现Linux中的du命令
2017/06/12 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
基于python进行桶排序与基数排序的总结
2018/05/29 Python
python斐波那契数列的计算方法
2018/09/27 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
python 魔法函数实例及解析
2019/09/25 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
大学总结自我鉴定
2014/01/18 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
领导工作表现评语
2015/01/04 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
军训决心书范文
2015/09/22 职场文书