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 相关文章推荐
教你如何把一篇文章按要求分段
Oct 09 PHP
php抓即时股票信息
Oct 09 PHP
如何跨站抓取别的站点的页面的补充
Oct 09 PHP
php 引用(&amp;)详解
Nov 20 PHP
PHP输出一个等腰三角形的方法
May 12 PHP
php猜单词游戏
Sep 29 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 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
全文搜索和替换
2006/10/09 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
php中error与exception的区别及应用
2014/07/28 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
js数组的操作详解
2013/03/27 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
Python计算已经过去多少个周末的方法
2015/07/25 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
Python初学者常见错误详解
2019/07/02 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
深入分析python 排序
2020/08/24 Python
DELPHI面试题研发笔试试卷
2015/11/08 面试题
高中生学期学习自我评价
2014/02/24 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
班级口号大全
2014/06/09 职场文书
中秋节随笔
2015/08/15 职场文书