PHP中的if/else结构在html中

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语句吗?

Oth*_*hyn 5

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)