在wordpress的说明文档中,提醒用户时刻保持wordpress的最新版本。所以在大批量的更新后,随手升级了5.0。然后问题来了……

首先问题在PHP版本上,之前使用的5.x版本被wordpress放弃,升级到7.3版本。虽然暂时不升级可能也没啥问题,最多就是报报错而已。但为了以后方便,该升级还是升级好了。

问题是怎么升级啊!在目前的虚拟空间环境下,要升级操作系统的唯一办法是……找客服。好在客服给力,给我升级了,然后问题又有了。

pagebar是我常用的一个wordpress插件,简单小巧好用。不过这个插件已经很久没有更新了。不更新不是问题,问题是现在的pagebar插件不支持PHP7.x。见鬼了,只能自己改。

来自后面一段时间的更新,关于pagebar插件,我最终还是放弃了,换用了现在仍然在更新的插件。所以下面的信息不再适用,仅做存档。

报错信息是:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; PagebarOptions has a deprecated constructor in \wp-content\plugins\pagebar\pagebar_options.php on line 5

Deprecated级的报错不是致命的,但总是显示也不好看不是,而且现在不改以后早晚要改。首先是报错原因:

PHP OOP使用和类名相同的方法名作为构造方法,是 PHP4 的写法,PHP 5中同时支持__construct和类同名方法,但__construct方法具有优先性。

PHP 7开始使用和类名相同的方法名作为构造方法会报E_DEPRECATED级别的错误,提示在未来版本中会彻底抛弃类同名方法作为构造函数。但程序仍然会正常执行。

纠正方法也很简单:

<?php
        class a{
                function a(){
                }
        }
?>

更改成

<?php
        class a{
                function __construct(){
                }
        }
?>

找到报错的对应位置,按照上面的方式更改就行了。

升个级真TM麻烦。

好吧,更新,问题还有几个

Warning: A non-numeric value encountered

Parameter must be an array or an object that implements Countable

这些都是PHP升级后语法规则变得更加严格导致以前可以兼容的错误现在都以warning的形式报出来了。这些问题的修复需要根据实际情况,还需要一点php功底。这里就不赘述了。

 想说点什么吗?

 (拖动评论框右下角可扩展评论框面积;若评论发表后未显示请耐心等待审核)

左半红印发表于2019.05.4th