热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP5.4.X对于静态方法的修复

今天朋友在安装ECShop的时候突然告诉我说不能装。在检测GD库的时候报错了。

今天朋友在安装ECShop的时候突然告诉我说不能装。在检测GD库的时候报错了。

错误信息如下:

 

错误提示的大致意思是说调用的cls_image:gd_version()方法不是一个静态方法。

突然想起以前在教课的时候也遇到过同样的问题。所以瞬间问他的PHP版本。得结果为:5.4.X的。

难道PHP5.4.X中对于静态方法等的使用和定义进行了强化(或者说修复)了?好吧。瞬间装了一个PHP5.4.3进行了测试。

代码如下:

先来看一下在5.3.X中执行的结果:

 

貌似没有任何问题。有过其它编程经验的朋友可能已经开始发现了。。为什么test方法没有进行静态声明也能在类外直接使用类名进行调用。是吧。。当年我也有着同样的疑问。在5.3.X之前的支持面向对象的版本中。不管你的方法是否加上了static它都可以毫无障碍的正常执行。我也奇怪了一年多了。但是为了严谨起见一直都使用的static关键字标明静态方法。


好吧,让我们来看下php5.4.x中执行同样的代码的效果吧:

 

报错了。和刚刚ec上看到的错误是一样的。虽然最后同样输出了test。但是这样的结果我相信。应该在不久的将来。这样的问题一定会被完全正规化。

所以我们这样写:

虽然只是加了一个static关键字。但是这样的错误就木有了。

其实吧。严谨远大于方便。

再有吧EC。您这样的写法。。以后如何是好?还不如一开始的时候就把static乖乖的加上吧?


推荐阅读
author-avatar
花儿在绽放2502857073
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有