Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP7.2的可数问题_Php_Count - Fatal编程技术网

PHP7.2的可数问题

PHP7.2的可数问题,php,count,Php,Count,我有一个多年来一直依赖WP插件的客户机,几年前作者放弃了它。我已经能够做一些修复,使其与升级到PHP7.2一起工作,但这一个让我困惑。我越是研究它,我就越不了解如何修复它 警告如下: 警告:count():参数必须是在第311行的/app/public/wp content/plugins/ozh admin下拉菜单/inc/core.php中实现可计数的数组或对象(下面第一行是311) 在PHP7.2之前,当将非数组传递给count()时,它返回1。 现在,正如您在中所看到的,count()在

我有一个多年来一直依赖WP插件的客户机,几年前作者放弃了它。我已经能够做一些修复,使其与升级到PHP7.2一起工作,但这一个让我困惑。我越是研究它,我就越不了解如何修复它

警告如下:

警告:count():参数必须是在第311行的/app/public/wp content/plugins/ozh admin下拉菜单/inc/core.php中实现可计数的数组或对象(下面第一行是311)


在PHP7.2之前,当将非数组传递给
count()
时,它返回1。
现在,正如您在中所看到的,
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]);
}

PHP7.2之前的
将非数组传递给
count()
时,返回1。
现在,正如您在中所看到的,
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]);
}

是一个数组吗?你能确定吗?
$wp\u ozh\u adminmenu
的值是多少?我猜是一根绳子。像…这样的考试怎么样<代码>如果(!is_array($wp_ozh_adminmenu)| count($wp_ozh_adminmenu)==0)
我不确定,但只是将上面的代码包装进去:如果(!is_array($wp_ozh_adminmenu)| count($wp_ozh adminmenu)==0){}这没有帮助。
是数组吗?你能确定吗?
$wp\u ozh\u adminmenu
的值是多少?我猜是一根绳子。像…这样的考试怎么样<代码>如果(!is_array($wp_ozh_adminmenu)| count($wp_ozh_adminmenu)==0)
不确定我是否在跟踪,但只是将上面的代码包装在:如果(!is_array($wp_ozh_adminmenu)| count($wp_ozh adminmenu)==0){}中,这没有帮助。这修复了它。我可能需要更多的研究来了解如何/为什么。谢谢你@Ray这些研究应该主要是关于插件,它给你的函数提供了什么类型的变量。它可能会使用多种类型(例如数组或字符串),而PHP的弱类型允许它这样做。随着PHP7.2的突破性变化,您需要进行一些调整。如果您只使用
is_array()
并且不再允许任何其他类型,那么将来插件尝试使用字符串时可能会遇到一些问题。这就解决了问题。我可能需要更多的研究来了解如何/为什么。谢谢你@Ray这些研究应该主要是关于插件,它给你的函数提供了什么类型的变量。它可能会使用多种类型(例如数组或字符串),而PHP的弱类型允许它这样做。随着PHP7.2的突破性变化,您需要进行一些调整。如果您只使用
is_array()
并且不再允许任何其他类型,那么将来插件尝试使用字符串时可能会遇到一些问题。