作者:花儿在绽放2502857073 | 来源:互联网 | 2013-07-24 08:47
今天朋友在安装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乖乖的加上吧?