我想弄清楚应该如何构建 if/else 语句。
我理解基本的if/esle应该是这样的;
<?php
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}
?>
我不确定如何将此逻辑实现到我当前的语句中。我认为因为 php 混合在 html 中,这让我感到困惑:/
我确定这是非常错误的,但有人可以告诉我它应该如何构建吗?
<form role="form">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default <?php if ($status == '1' ) echo 'active btn-success' ; ?>">
<input type="radio" name="status" id="option1" value="1" autocomplete="off"> Active
</label>
<label class="btn btn-default <?php elseif ($status == '2' ) echo 'active btn-warning' ; ?>">
<input type="radio" name="status" id="option2" value="2" autocomplete="off"> Inactive
</label>
<label class="btn btn-default <?php else ($status == '3') echo 'active btn-danger' ; ?>">
<input type="radio" name="status" id="option3" value="3" autocomplete="off"> Not Found
</label>
</div>
</form>
我在 NetBeans 中看到的错误是;
Syntax error: unexpected elseif
我可以或应该只在每个标签上使用 if 语句吗?
最佳答案
Ravi Hirani has already answered the question ,但我想我会解释为什么你会收到错误。
原因是您没有使用正确的语法。如果我们取出 PHP 并剥离 HTML,您可能会明白原因:
if ($status == '1' ) echo 'active btn-success' ;
elseif ($status == '2' ) echo 'active btn-warning' ;
else ($status == '3') echo 'active btn-danger' ;
如您所见,您只是缺少括号来完成 if 语句所需的语法。它应该看起来像(没有标记):
if ($status == '1') {
echo 'active btn-success';
} elseif ($status == '2') {
echo 'active btn-warning';
} else ($status == '3') {
echo 'active btn-danger';
}
现在,当包含 HTML 时,会变得非常困惑!尤其是在尝试跨多行标记跟踪左括号和右括号时。所以我通常在处理标记时使用备用语法,只是为了让它更整洁一点!可以在这里找到:
http://php.net/manual/en/control-structures.alternative-syntax.php
您只需将括号替换为替代字符即可:
if ($status == '1'):
echo 'active btn-success';
elseif ($status == '2'):
echo 'active btn-warning';
else ($status == '3'):
echo 'active btn-danger';
endif;
关于HTML 中的 PHP if/else 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35360311/