PHP简写/短代码条件IF语句:执行代码或返回消息

时间:2012-10-10 00:13:55

标签: php shortcode

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

功能代码

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

我对此代码不喜欢的是我有两个单独的if条件。虽然它可以正常工作,但我希望在第一个else中有一个if

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

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

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

    解释如何阻止foreach执行。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

为什么不在if上添加else呢?代码块看起来像特殊渲染,类似于Zenf Framework视图脚本。除非特殊语法不允许使用else,否则你应该能够这样做。

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

答案 2 :(得分:0)

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

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

以后几行代码,您可以:

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

如果您愿意,可以重复使用代码。