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 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
实现“上一页”和“下一页按钮
Oct 09 PHP
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
PHP curl_setopt()函数实例代码与参数分析
Jun 02 PHP
php设置编码格式的方法
Mar 05 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
Mar 21 PHP
ThinkPHP路由机制简介
Mar 23 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 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
用Zend Encode编写开发PHP程序
2010/02/21 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
微信支付开发订单查询实例
2016/07/12 PHP
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
python中图像通道分离与合并实例
2020/01/17 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
白宫黑市官网:White House Black Market
2016/11/17 全球购物
文字自荐书范文
2014/02/10 职场文书
期末学生评语大全
2014/04/24 职场文书
匿名检举信范文
2015/03/02 职场文书
调解书格式范本
2015/05/20 职场文书
城南旧事电影观后感
2015/06/16 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
各种货币符号快捷输入
2022/02/17 杂记
netty 实现tomcat的示例代码
2022/06/05 Servers
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers