ホームページ >バックエンド開発 >PHPチュートリアル >static - 请问下PHP中5.3之前的版本和5.3之后的版本在静态化类 上面有什么区别吗?
我接触PHP 都是接触5.6版本的以前的版本没接触 求高手帮忙,
我的PHP 用5.3版本就不报错,
已改成5.6版本就开始报错说静态类不能使用, static public function(){ ....}
<code>**Strict Standards: Non-static method cls_image::gd_version() should not be called statically in F:\WWW\weixin\includes\lib_base.php on line 276 Strict Standards: Non-static method cls_image::gd_version() should not be called statically in F:\WWW\weixin\includes\lib_base.php on line 276 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in F:\WWW\weixin\includes\cls_template.php on line 300 Strict Standards: Non-static method cls_image::gd_version() should not be called statically in F:\WWW\weixin\includes\lib_base.php on line 276** </code>
我接触PHP 都是接触5.6版本的以前的版本没接触 求高手帮忙,
我的PHP 用5.3版本就不报错,
已改成5.6版本就开始报错说静态类不能使用, static public function(){ ....}
<code>**Strict Standards: Non-static method cls_image::gd_version() should not be called statically in F:\WWW\weixin\includes\lib_base.php on line 276 Strict Standards: Non-static method cls_image::gd_version() should not be called statically in F:\WWW\weixin\includes\lib_base.php on line 276 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in F:\WWW\weixin\includes\cls_template.php on line 300 Strict Standards: Non-static method cls_image::gd_version() should not be called statically in F:\WWW\weixin\includes\lib_base.php on line 276** </code>
php的语法变规范,变严谨了,所以以前不符合规范的代码就会给提示,这是好事,你要习惯。
ecshop
的cls_image
库中gd_version
不是一个静态方法
http://de2.php.net/manual/en/language.oop5.static.php
Calling non-static methods statically generates an E_STRICT level warning.
用静态方式调用一个非静态方法会导致一个 E_STRICT 级别的错误。
http://us2.php.net/manual/en/errorfunc.constants.php
E_STRICT Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. Since PHP 5 but not included in E_ALL until PHP 5.4.0
E_STRICT 启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。从 PHP 5.4 开始被默认启用。