是否有可能在php中的foreach循环中有一个if函数[关闭]

问题描述 投票:1回答:6

是否可以在foreach循环中使用if语句?对我来说它不起作用,我有这样的功能:

<?php 
     foreach($userdetail_list as $row):
?>
 <?php if (isset($_SESSION['user_logged']) && $_SESSION['user_logged']=! TRUE){ ?>
 <a href="<?php echo base_url() ?>/ChatboxController"><input type="button" class="btn btn-primary bs" value="Bericht sturen"></input> </a>
 <?php endif; ?>
 <tr>
     <td><h2><?php echo $row->voornaam;?> <?php echo $row->achternaam;?></h2></td>
     <td><p><?php echo $row->woonplaats;?></p></td>
     <h3>Over mij:</h3><td><?php echo $row->beschrijving;?></td><br>
     <h3>Contactgegevens:</h3>
     <td><p><?php echo $row->email;?></p></td>
     </tr>
<?php endforeach;  ?> 

所以我收到了这个错误:

遇到PHP错误严重性:解析错误消息:语法错误,意外'endif'(T_ENDIF)文件名:views / profiel_user.php行号:38 Backtrace:

所以它说我没有正确地结束if语句。

php codeigniter if-statement foreach codeigniter-3
6个回答
5
投票

只需使用}结束括号而不是endif;

<?php } ?>

你没有使用if ( .. ) :

php.net获取更多详细信息,以检查这些语法的工作原理。


0
投票

你需要将endif改为}。尝试使用此代码。您需要做的只是复制并粘贴此代码。全部完成。

<?php 
foreach($userdetail_list as $row){ ?>
<?php if (isset($_SESSION['user_logged']) && $_SESSION['user_logged']=! TRUE){ ?>
<a href="<?php echo base_url() ?>/ChatboxController"><input type="button" class="btn btn-primary bs" value="Bericht sturen"></input> </a>
<?php } ?>
<tr>
    <td><h2><?php echo $row->voornaam;?> <?php echo $row->achternaam;?></h2></td>
    <td><p><?php echo $row->woonplaats;?></p></td>
    <h3>Over mij:</h3><td><?php echo $row->beschrijving;?></td><br>
    <h3>Contactgegevens:</h3>
     <td><p><?php echo $row->email;?></p></td>
 </tr>
<?php }  ?>

0
投票

这一行出错了。缺少: ....在codeigniter没有使用{if condition in codeigniter please read manual

我已经解决了这个问题

<?php if (isset($_SESSION['user_logged']) && $_SESSION['user_logged']=! TRUE): ?>

如果您不想在Codeigniter中使用替代PHP语法,请遵循此示例代码

<?php if (isset($_SESSION['user_logged']) && $_SESSION['user_logged']=! TRUE){ ?>
.......

<?php } ?>

0
投票

尝试下面的代码,

<?php 
   foreach($userdetail_list as $row){
      if (isset($_SESSION['user_logged']) && $_SESSION['user_logged']=! TRUE){ ?>
          <a href="<?php echo base_url() ?>/ChatboxController"><input type="button" class="btn btn-primary bs" value="Bericht sturen"></input> </a>
              <?php } ?>
                        <tr>
                          <td><h2><?php echo $row->voornaam;?> <?php echo $row->achternaam;?></h2></td>
                          <td><p><?php echo $row->woonplaats;?></p></td>
                          <h3>Over mij:</h3><td><?php echo $row->beschrijving;?></td><br>
                          <h3>Contactgegevens:</h3>
                          <td><p><?php echo $row->email;?></p></td>
                      </tr>

<?php } ?>

0
投票

是的,可以在foreach循环中使用if语句。我来这里给你看一个演示:

$myData = array('Gopal'=>'Sharma','Dixit'=>'Prashant');
foreach($myData as $key=>$value){
    if($key=='Gopal'){
        echo "Yes <br/> We can have an if statement in a foreach loop.";
    }
}

0
投票

答案是肯定的。

您的问题在于您的病情的语法。用{替换你的开口花括号:

<?php if (isset($_SESSION['user_logged']) && $_SESSION['user_logged']=! TRUE) : ?>

PHP's Alternative syntax for control structures

© www.soinside.com 2019 - 2024. All rights reserved.