jon*_*boy 2 html php if-statement
我试图找出如何构造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";
}
?>
Run Code Online (Sandbox Code Playgroud)
我不确定如何在我当前的声明中实现这个逻辑.我认为因为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>
Run Code Online (Sandbox Code Playgroud)
我在NetBeans中看到的错误是;
语法错误:意外的elseif
我可以或者只是在每个标签上使用if语句吗?
Ravi Hirani已经回答了这个问题,但我想我会解释你为什么会收到这个错误.
原因是您没有使用正确的语法.如果我们取出PHP并剥离HTML,您可能会看到原因:
if ($status == '1' ) echo 'active btn-success' ;
elseif ($status == '2' ) echo 'active btn-warning' ;
else ($status == '3') echo 'active btn-danger' ;
Run Code Online (Sandbox Code Playgroud)
如您所见,您只是缺少括号来完成if语句所需的语法.它应该看起来像(没有标记):
if ($status == '1') {
echo 'active btn-success';
} elseif ($status == '2') {
echo 'active btn-warning';
} else ($status == '3') {
echo 'active btn-danger';
}
Run Code Online (Sandbox Code Playgroud)
现在,当包含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;
Run Code Online (Sandbox Code Playgroud)