输出中的if语句

时间:2018-11-01 19:20:48

标签: php if-statement

   $output10 .= '            <div class="panel panel-profile list-view">
          <div class="panel-heading">
            <div class="media">
              <div class="media-left">
                <a href="#">
                  <img class="media-object img-circle" src="../images/photos/user1.png" alt="">
                </a>
              </div>
              <div class="media-body">
                <h4 class="media-heading">'. $row['username'] . '</h4>
               'if($pAdminLevel == 0) : '<p class="media-usermeta"><i class="glyphicon glyphicon-briefcase"></i>' . $pAdminLevel . '</p>' endif; '
              </div>
            </div><!-- media -->

我想做一个if语句,但是它显示此错误。我发布的代码不是完整版本,这就是为什么缺少右括号的原因,我只是发布了我不明白的内容,谢谢。

  

语法错误,意外的'if'(T_IF)in

4 个答案:

答案 0 :(得分:1)

不能在串联字符串中使用if

这里基本上有两个选择:

Ternary operator

$output = "abc" . ($pAdminLevel == 0 ? "text when condition is true" : "text when it is false") . " other text";

代码的单独逻辑:

$output = "abc";
if ($pAdminLevel == 0) {
    $output .= "cde";
} else {
    $output .= "xyz";
}

答案 1 :(得分:0)

您可以尝试以下操作:

   $output10 .= '            <div class="panel panel-profile list-view">
          <div class="panel-heading">
            <div class="media">
              <div class="media-left">
                <a href="#">
                  <img class="media-object img-circle" src="../images/photos/user1.png" alt="">
                </a>
              </div>
              <div class="media-body">
                <h4 class="media-heading">'. $row['username'] . '</h4>' .
               ( $pAdminLevel == 0 ? '<p class="media-usermeta"><i class="glyphicon glyphicon-briefcase"></i>' . $pAdminLevel . '</p>' : '' ) .
              '</div>
            </div><!-- media -->';

语法是(boolean?true:false)。

没有其他方法可以进行内联条件。当然,您总是可以拆分字符串。

答案 2 :(得分:0)

您停止了字符串文字,但没有再次启动它。

$output10 .= '<div class="panel panel-profile list-view">
      <div class="panel-heading">
        <div class="media">
          <div class="media-left">
            <a href="#">
              <img class="media-object img-circle" src="../images/photos/user1.png" alt="">
            </a>
          </div>
          <div class="media-body">
            <h4 class="media-heading">'. $row['username'] . '</h4>';
if($pAdminLevel == 0) : 
    $output10 .= '<p class="media-usermeta"><i class="glyphicon glyphicon-briefcase"></i>' . $pAdminLevel . '</p>' ;
endif; 

$output10 .= '</div>
        </div><!-- media -->';

答案 3 :(得分:0)

在使用php管理html输出时,我喜欢以下模式:

$output10 .= '<div class="panel panel-profile list-view">';
$output10 .= '<div class="panel-heading">';
  $output10 .= '<div class="media">';
    $output10 .= '<div class="media-left">';
      $output10 .= '<a href="#">';
        $output10 .= '<img class="media-object img-circle" src="../images/photos/user1.png" alt="">';
      $output10 .= '</a>';
    $output10 .= '</div>';
    $output10 .= '<div class="media-body">';
      $output10 .= '<h4 class="media-heading">'. $row['username'] . '</h4>';
      if($pAdminLevel == 0) {
        $output10 .= '<p class="media-usermeta"><i class="glyphicon glyphicon-briefcase"></i>' . $pAdminLevel . '</p>';
      }
    $output10 .= '</div>';
  $output10 .= '</div><!-- media -->';

这不是最漂亮的方法,但它避免使用可能不利于维护性的三元条件,并避免使用多行字符串(这在PHP中历来是有问题的)