关于PHP面向对象编程中使用范围解析操作符访问非静态方法的注意事项
来源:互联网 发布:淘宝hot是什么意思 编辑:程序博客网 时间:2024/06/08 17:44
前几天写代码的时候看到了一些语法错误,在使用了范围解析操作符访问了非静态方法。
class Test{public function testA(){echo 1;}}Test::testA();//结果 输出1因为代码已经push到生产环境中,所以并没有什么问题,但是在我自己的开发环境中却出现了错误:[Sat May 26 19:04:41 2012] [error] PHP Strict Standards: Non-static method Config::getData() should not be called statically, assuming $this from incompatible context in /xxx/Config.inc.php on line xx
之后我查看了手册并查询了一下解决办法,总结如下:
- 如果使用范围解析操作符(::)访问了非静态方法,会产生一个Fatal级别的错误。
- 虽然会产生错误警告,但是实际上却可以使用范围解析操作符来访问非静态方法。
既然了解了上述错误产生的原因,就明白了为什么生产环境中没有出现错误的原因,因为生产环境中要关闭所有的错误提示。所以,虽然这种语法是一个致命警告,但是它还是可以成功的运行,这里的原因可能就要更深入的去了解PHP的内部结构了。当然,手册中也建议开发者们不要通过这种方式来访问非静态方法,所以养成一个良好的编码习惯,还是非常重要的。
阅读全文
0 0
- 关于PHP面向对象编程中使用范围解析操作符访问非静态方法的注意事项
- 06-php面向对象编程,静态方法
- 【面向对象】php新手之学习类与对象-范围解析操作符
- 【面向对象】如何在静态方法中使用非静态变量?
- php面向对象静态和非静态
- PHP 范围解析操作符,__call(),__callstatic()的使用
- PHP:使用范围解析操作符
- 非静态内部类的修饰符及其访问范围
- php中静态方法属性的注意事项
- php面向对象编程之构造方法的使用
- 关于在静态方法中访问非静态内部类的问题
- PHP中面向对象编程之封装以及魔术方法的使用
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- DES/3DES/AES区别
- 事务的传播类型 和 隔离级别
- 国外互联网公司大数据技术架构研究
- u-boot启动内核的几种方式
- Linux系统间文件双向同步搭建Unison版
- 关于PHP面向对象编程中使用范围解析操作符访问非静态方法的注意事项
- ios面试大全
- STM32为什么必须 先配置时钟 再配置GPIO
- asp.net mvc 原理
- 关于Unchecked cast from List<String> to Iterator<String>的警告
- WPF学习笔记《一》
- wordpress数据跨库转移
- linux基础(十三)软件安装rpm、yum
- 16位CRC查表法的简单使用方法