PHP 7.2 count()警告
他在给我这个警告 参数必须是实现可计数的数组或对象PHP 7.2 count()警告,php,Php,他在给我这个警告 参数必须是实现可计数的数组或对象 这是在从PHP7.1升级到7.2时发生的。知道如何修复它吗?问题是,第一次通过内部循环时,您将$lts[$i]替换为$lts[$i][$j]。当循环重复时,它测试$j
这是在从PHP7.1升级到7.2时发生的。知道如何修复它吗?问题是,第一次通过内部循环时,您将
$lts[$i]
替换为$lts[$i][$j]
。当循环重复时,它测试$j
。但是$lts[$i]
不再是一个数组,它是行的第一列的值,因此会出现此错误
您可以通过将count($lts[$i])
分配给循环之前的变量来解决此问题。但这只会引发另一个问题。当您在后续迭代中尝试执行$lts[$i]=$lts[$i][$j]
时,$lts[$i]
仍然不是数组,因此它没有$j
元素
您可以通过使用foreach
而不是for
来解决这个问题,因为它会复制它循环的数组
array (size=2)
0 => string '20' (length=2)
1 => string '21' (length=2)
或者简单地说:
foreach ($lts as &$row) {
$row = end($row);
}
Wordpress 4.9.8主题安装(PHP7.2 count()警告):
警告:count():参数必须是
可数的
/var/www/html/wp content/themes/office/admin/functions/functions.mediahuploader.php
在线127
解决方案
第127行已更改
$lts = array_map('end', $lts);
到
if(is_数组($_posts)){
创建一个新函数来替换count
if ( count( $_posts ) ) {
确保你放进去的东西实际上是一个数组;)检查
mysqli_fetch_all()
的返回是否包含某些内容-没有行可以为null…检查发行说明…他们在7.2中添加了此警告“当尝试计数()不可计数的类型时,将发出一个E_警告(这包括sizeof())别名函数)。“我们必须假设查询失败或返回norows@RiggsFolly如果失败,mysqli\u fetch\u all()
将抱怨一个布尔参数。如果它没有返回任何行,$lts
应该是一个空数组。非常好。谢谢!
$lts = array_map('end', $lts);
if ( count( $_posts ) ) {
function count2($x) {
return is_array($x) ? count($x) : 0;
}