PHP的范围解析操作符(::)的含义分析说明
2015-01-24信息快讯网
今天看到几个有关PHP的符号。一个是@,这个加在一个变量的前面,是为了抑制PHP解释器报错,也就是说即使出了错也不会显示出来。
今天看到几个有关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定时删除文件夹下文件(清理缓存文件)
PHP关联数组的10个操作技巧
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
PHP中CURL方法curl_setopt()函数的参数分享
在windows服务器开启php的gd库phpinfo中未发现
thinkPHP的Html模板标签使用方法
说说PHP的autoLoad自动加载机制
详解php的魔术方法__get()和__set()使用介绍
PHP的autoload机制的实现解析
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
一个基于PDO的数据库操作类(新) 一个PDO事务实例
PHP array_multisort()函数的使用札记
PHP导出MySQL数据到Excel文件(fputcsv)
PHP include_path设置技巧分享
php array_intersect比array_diff快(附详细的使用说明)
php header Content-Type类型小结
php的memcached客户端memcached
rephactor 优秀的PHP的重构工具
基于PHP的cURL快速入门教程 (小偷采集程序)
php的list()的一步操作给一组变量进行赋值的使用
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据