【问题标题】:is it possible to have an if function in a foreach loop in php [closed]php的foreach循环中是否可以有一个if函数[关闭]
【发布时间】:2018-06-02 22:36:15
【问题描述】:

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 回溯:

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

【问题讨论】:

  • 尝试在此处发布代码时彻底检查代码......这很简单,错误也清楚地反映了问题的确切原因............尽量保持缩进以避免喜欢这个简单的问题
  • 好的,谢谢您的帮助

标签: php codeigniter if-statement foreach codeigniter-3


【解决方案1】:

只需使用} 右括号代替endif;

<?php } ?>

你没有使用if ( .. ) :

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

【讨论】:

  • 是的,很棒很简单
【解决方案2】:

这一行有错误。缺少 :.... 在 codeigniter 中未使用 {if condition in codeigniter please read manual

我已经解决了这个问题

&lt;?php if (isset($_SESSION['user_logged']) &amp;&amp; $_SESSION['user_logged']=! TRUE): ?&gt;

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

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

<?php } ?>

【讨论】:

    【解决方案3】:

    您需要将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 }  ?>
    

    【讨论】:

      【解决方案4】:

      试试下面的代码,

      <?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 } ?>
      

      【讨论】:

        【解决方案5】:

        是的,可以在 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.";
            }
        }
        

        【讨论】:

          【解决方案6】:

          答案是肯定的。

          您的问题在于您的条件的语法。将您的左大括号 { 替换为 :

          &lt;?php if (isset($_SESSION['user_logged']) &amp;&amp; $_SESSION['user_logged']=! TRUE) : ?&gt;

          PHP's Alternative syntax for control structures

          【讨论】:

            猜你喜欢
            • 2021-01-22
            • 1970-01-01
            • 1970-01-01
            • 2016-12-27
            • 2012-06-04
            • 2013-03-05
            • 2020-09-21
            • 2014-03-18
            • 2014-05-29
            相关资源
            最近更新 更多