为foreach()-Laravel 4.2提供的参数无效


Invalid argument supplied for foreach() - Laravel 4.2

大家好,这是我在控制器中的代码。这个foreach循环用于添加新行。因此,当我不添加新行时,我会得到一个名为为foreach()提供的无效参数的错误我知道发生错误是因为该行发送了null值,但我不知道解决方案。请帮我解决这个问题。谢谢大家。感谢您的帮助和评论。:)

 $total_add_more = 0;
        foreach($add_more_line as $each_key => $each_val ) {
            if($add_more_year_button[$each_key] == 'month'){
                $total_add_more += $each_val; 
            }else {
                $total_add_more += $each_val * 12;
            }
        }

始终$add_more_line应该是执行foreach的数组。请执行以下操作之一以防止出现此错误。

  1. 使用is_array检查变量,如果是,则可以执行foreach
  2. 正如瑞恩所说,把它放在froeach里面
  3. 在分配值之前初始化控制器中的数组

代码:

if(is_array($add_more_line)){
    // Do the job
}

foreach((array)$add_more_line as $each_key => $each_val){
   // Code 
}

 $add_more_line = array();

在执行foreach之前,是否可以不检查$add_more_line变量?

if ($add_more_line)
{
    // your code
}