首页 > 解决方案 > PHP 7.3.13 为 foreach() 提供的参数无效

问题描述

由于我的主机已将 php 从 7.0.3 版更新到 php 7.3.13 版,我收到以下错误:

为 foreach() 提供的参数无效

在版本更改之前它工作得很好,如果我在函数上使用 var_export,我得到 7.0.3 版本:

array (
    0 => 'block_menu.html',
    1 => 'block_fiches_pratiques.html',
    2 => 'block_fiche_aleatoire.html',
    3 => 'block_random_annonces.html',
    4 => 'block_consult.html',
    5 => 'block_random_oquerhtml',
    6 => 'block_user_information.html',
    7 => 'block_horoscope.html',
    8 => 'block_favoris.html',
    9 => 'block_links.html',)

如果我在函数上使用 var_export,版本为 7.3.13,它会显示字符串第一个字母的 10 倍,not array (bbbbbbbbbbb)

这是有问题的代码:

if($left_block_ary !='') {
    foreach ($left_block_ary as $block => $value){
    $template->assign_block_vars('left_block_files', array(
    'LEFT_BLOCKS'       => portal_block_template($value),
    'LEFT_BLOCK_ID'     => $left_block_id[$block],
    'LEFT_BLOCK_SOURCE' => htmlspecialchars_decode(smilies_pass(censor_text($left_block_source[$block]))),
    'LEFT_BLOCK_NOM'    => $left_block_nom[$block],                     
    ));
    } } else {}

谢谢您的帮助...

标签: php

解决方案


if($left_block_ary !='')的是什么没有检查或工作不正常。$left_block_ary是一个数组,因此它永远不会等于''因此即使在数组为空的情况下检查也总是通过,而不是您可以使用

if(!empty($left_block_ary)) {
   //perform your loop here
}

检查以检查数组是否为空。


推荐阅读