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;
}