我在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
。
或者,如果您的答案是这样的:
$var_is_greater_than_two = ($var > 2 ? true : false); // returns true
解释如何阻止foreach
执行。
答案 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;?>
如果您愿意,可以重复使用代码。