php - 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 {}
谢谢您的帮助...
解决方案
你if($left_block_ary !='')
的是什么没有检查或工作不正常。$left_block_ary
是一个数组,因此它永远不会等于''
因此即使在数组为空的情况下检查也总是通过,而不是您可以使用
if(!empty($left_block_ary)) {
//perform your loop here
}
检查以检查数组是否为空。
推荐阅读
- ruby-on-rails - 如何仅使用基本 STI 类加载 STI 记录?
- javascript - 创建 javascript 对象时,“对象”对象是否只创建一次并被所有内容的 __proto__ 引用?
- r - 宽数据格式作为 Shiny mapview 应用程序的输入 - 需要反应式包装器吗?
- ruby - 系列的第 n 项的总和
- php - 从多维数组项构建唯一的字符串列表
- linux - Matlab 二进制文件在 shell 中不接受其输入值
- python - Python中的条件嵌套循环
- asp.net-core-mvc - 我可以访问其他中间件中的 AuthenticateResult.Fail 异常参数吗?
- java - libGDX : Scrollpane 是 Scrollpane 的子级,并在滚动时在它们之间切换
- scala - foldLeft 迭代的条件终止