代码中意外的'endforeach'

时间:2016-02-21 06:49:10

标签: php foreach

以下是我的代码行。我有一个foreach循环将值打印到表中。它导致错误说

  

“解析错误:语法错误,意外'endforeach'(T_ENDFOREACH)”

我似乎无法弄清楚我哪里出错了。

<?php foreach (getStaffDetails() as $staffDetails): 
if($staffDetails['admin_confirm'] == 1) 
  {?>
  <tr>                             
  <td><?php echo $staffDetails['name']; ?></td>                               
  <td> <?php echo $staffDetails['staff_id']; ?></td>
  <td> <?php $dept= $staffDetails['dept_id']; 
            $dept_name= getDeptName($dept);
            echo $dept_name;?> </td> 
  <td> <?php echo $staffDetails['email_id']; ?></td>
  <td> <?php echo $staffDetails['ph_no']; ?></td>
  <td> <?php echo $staffDetails['gender']; ?></td>
  <td> <?php echo $staffDetails['doj']; ?></td> 
<?php endforeach; ?>

2 个答案:

答案 0 :(得分:1)

你已经打开了一个大括号,但没有关闭它。

if($staffDetails['admin_confirm'] == 1) 
    {?>

你需要在这里关闭它:

<td> <?php echo $staffDetails['doj']; ?></td> 
<?php } endforeach; ?>

答案 1 :(得分:0)

这是因为代码中没有关闭if语句。因此,PHP解析器在关闭endforeach

之前遇到if statement关键字
<?php 
  foreach (getStaffDetails() as $staffDetails): 
      if($staffDetails['admin_confirm'] == 1):
?>
<tr>                             
    <td> <?php echo $staffDetails['name']; ?> </td>                               
    <td> <?php echo $staffDetails['staff_id']; ?> </td>
    <td> <?php $dept= $staffDetails['dept_id']; 
               $dept_name= getDeptName($dept);
               echo $dept_name;?> </td> 
    <td> <?php echo $staffDetails['email_id']; ?> </td>
    <td> <?php echo $staffDetails['ph_no']; ?> </td>
    <td> <?php echo $staffDetails['gender']; ?> </td>
    <td> <?php echo $staffDetails['doj']; ?> </td> 
</tr>
<?php 
      endif;
  endforeach; ?>