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 相关文章推荐
用libTemplate实现静态网页的生成
Oct 09 PHP
在任意字符集下正常显示网页的方法一
Apr 01 PHP
PHP字符转义相关函数小结(php下的转义字符串)
Apr 12 PHP
PHP的单引号和双引号 字符串效率
May 27 PHP
PHP 冒泡排序算法的实现代码
Aug 08 PHP
PHP输出XML到页面的3种方法详解
Jun 06 PHP
PHP抓取网页、解析HTML常用的方法总结
Jul 01 PHP
PHP实现linux命令tail -f
Feb 22 PHP
php实用代码片段整理
Nov 12 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
Jun 06 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过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
React中的render何时执行过程
2018/04/13 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
浅谈Python中数据解析
2015/05/05 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
优秀应届生推荐信
2013/11/09 职场文书
化验室技术员岗位职责
2013/12/24 职场文书
员工培训邀请函
2014/01/11 职场文书
打造完美自荐信
2014/01/24 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
销售顾问工作计划书
2014/08/15 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
小学老师对学生的评语
2014/12/29 职场文书
会议通知
2015/04/15 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
小学校长开学致辞
2015/07/29 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js