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个人网站架设连环讲(三)
Oct 09 PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
php ci框架验证码实例分析
Jun 26 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
PHP实现微信发红包程序
Aug 24 PHP
PHP查看SSL证书信息的方法
Sep 22 PHP
PHP框架laravel的.env文件配置教程
Jun 07 PHP
PHP多种序列化/反序列化的方法详解
Jun 23 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
实例说明js脚本语言和php脚本语言的区别
Apr 04 PHP
在laravel中实现事务回滚的方法
Oct 10 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
咖啡的传说和历史
2021/03/03 新手入门
PHP 写文本日志实现代码
2010/05/18 PHP
php实现的农历算法实例
2015/08/11 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
在vue 中使用 less的教程详解
2018/09/26 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
用vue设计一个日历表
2020/12/03 Vue.js
python 的列表遍历删除实现代码
2020/04/12 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
Python登录系统界面实现详解
2019/06/25 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
python支付宝支付示例详解
2019/08/22 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
港湾网络笔试题
2014/04/19 面试题
幼儿园父亲节活动方案
2014/03/11 职场文书
5.12护士节活动总结
2015/02/10 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
python微信智能AI机器人实现多种支付方式
2022/04/12 Python
element tree树形组件回显数据问题解决
2022/08/14 Javascript