0

foreach在 if 语句中有一个循环。我的代码是速记格式。如果条件返回,我不希望foreach循环执行,而是回显一条消息“对不起,数据库为空!”iftrue

功能代码

<?php if (!$check == 0) : ?>
    <?php foreach... ?>
       ...
    <?php endforeach; ?>
<?php endif; ?>
<?php if ($check == 0) echo 'Sorry database is empty!'; ?>

我不喜欢这段代码的地方是我有两个不同的if条件。当然它可以正常工作,但我更愿意else在第一个if.

  1. 我想做的正确语法是什么?


或者,如果您的答案是这样的:

$var_is_greater_than_two = ($var > 2 ? true : false); // returns true

解释这将如何阻止foreach执行。

4

3 回答 3

0

只需使用其他:

<?php if ($check !== 0) : ?>
    <?php foreach... ?>
       ...
    <?php endforeach; ?>
<?php else: echo 'Sorry database is empty!'; ?>
<?php endif; ?>

你也可以缩短这个:

$var_is_greater_than_two = ($var > 2 ? true : false); // returns true

仅此:

$var_is_greater_than_two = ($var > 2); // returns true
于 2012-10-10T00:16:43.047 回答
0

为什么不给 if 添加一个 else 呢?代码块看起来像特殊渲染,类似于 Zenf 框架视图脚本。除非特殊语法不允许 else,否则您应该可以这样做。

<?php if (!$check == 0) : ?>
   <?php foreach... ?>
   ...
  <?php endforeach; ?>
<?php else :  ?>
      Sorry database is empty!
<?php endif; ?>
于 2012-10-10T00:18:12.637 回答
0

想法可能是将 foreach 循环提取到另一种方法。另一个文件或同一个文件有你的 executeLoop 方法:

<?php 
   function executeLoop()
   {
     foreach(..)
     {
       //do something
     }
  }
?>
enter code here

几行代码之后,您可以:

<?php (condition)?executeLoop() : echo $something;?>

好消息是,如果您以后愿意,您可以重用您的代码。

于 2012-10-10T00:20:47.150 回答