我有一个客户多年来一直依赖WP插件,而该插件几年前被作者放弃了。我已经能够进行一些修复以使其能够升级到PHP 7.2,但这使我感到困惑。我研究得越多,就越不了解如何解决它。
以下警告:
警告:count():参数必须是第311行的/app/public/wp-content/plugins/ozh-admin-drop-down-menu/inc/core.php中实现Countable的数组或对象(下面的第一行是311 )
if (!count($wp_ozh_adminmenu)) {
$wp_ozh_adminmenu = (array)get_option('ozh_adminmenu');
unset($wp_ozh_adminmenu[0]);
}
答案 0 :(得分:2)
在PHP 7.2之前,当将非数组传递给count()
时,它返回1。
现在,您可以在breaking changes中看到,count()
在给它一个非数组时会发出警告。
一个简单的解决方法是在使用它之前检查它是否为数组。例如,如果要允许数组和字符串,则可能需要更多检查。
<?php
if (!is_array($wp_ozh_adminmenu) || !count($wp_ozh_adminmenu)) {
$wp_ozh_adminmenu = (array)get_option('ozh_adminmenu');
unset($wp_ozh_adminmenu[0]);
}