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 相关文章推荐
PHP4实际应用经验篇(2)
Oct 09 PHP
PHP简介
Oct 09 PHP
PR值查询 | PageRank 查询
Dec 20 PHP
php 服务器调试 Zend Debugger 的安装教程
Sep 25 PHP
php microtime获取浮点的时间戳
Feb 21 PHP
用PHP实现递归循环每一个目录
Aug 08 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
PHP实现通用alert函数的方法
Mar 11 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
PHP实现QQ快速登录的方法
Sep 28 PHP
PHP实现通过文本文件统计页面访问量功能示例
Feb 13 PHP
php设计模式之策略模式应用案例详解
Jun 17 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 Ajax实现页面无刷新发表评论
2007/01/02 PHP
PHP几个数学计算的内部函数学习整理
2011/08/06 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
Django 中 cookie的使用
2017/08/17 PHP
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
斜45度寻路实现函数
2009/08/20 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
js常用排序实现代码
2010/12/28 Javascript
Javascript对象属性方法汇总
2013/11/21 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
2016/11/18 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
python判断字符串是否包含子字符串的方法
2015/03/24 Python
最基础的Python的socket编程入门教程
2015/04/23 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Python 中的with关键字使用详解
2016/09/11 Python
Python编程实现的简单神经网络算法示例
2018/01/26 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
英国在线泳装店:Simply Swim
2019/05/05 全球购物
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
学习型班组申报材料
2014/05/31 职场文书
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
Python基础之条件语句详解
2021/06/16 Python