php foreach错误第一行

时间:2016-09-09 06:18:04

标签: php codeigniter loops foreach

表中的第一个数组总是有错误。

  foreach ($status_lines as $status_line) {
    $xxx [] = $status_line -> status ;
  }

  if (count(array_unique($xxx)) == 1 && end($xxx) == 'REJECTED') { ?>
    <b class="text-gray"> N / A </b>
  <?php }

  elseif (count(array_unique($xxx)) == 1 && end($xxx) == 'NOT APPROVED') { ?>
    <b class="text-gray"> N / A </b>
  <?php }
  

结果:消息:未定义的变量:xxx

但是对于表格末尾的第二行是OK ...

2 个答案:

答案 0 :(得分:1)

在用作

之前定义它
$xxx  = array();
 foreach ($status_lines as $status_line) {
    $xxx[] = $status_line -> status ;
  }

如果您没有声明新的array,并且创建/更新阵列的数据因任何原因失败,那么尝试使用该阵列的任何未来代码将warning因为数组不存在。

例如,如果未声明数组并且未向其添加任何值,则foreach()将抛出错误。但是,如果数组只是空的,则不会发生错误,就像您声明它一样。

答案 1 :(得分:1)

您的变量$ xxx已在您的foreach块中定义。它没有在其他任何地方定义。

在块外部将其定义为全局变量:

$ xxx = array();

然后继续你的foreach循环如下:

foreach ($status_lines as $status_line) {
    $xxx[] = $status_line -> status ;
}
...