【问题标题】:Is it possible to have IF statement in an Echo statement in PHP是否可以在 PHP 的 Echo 语句中使用 IF 语句
【发布时间】:2012-01-28 23:41:46
【问题描述】:

提前致谢。我确实查看了其他类似的问题/答案,但没有找到我正在寻找的内容。

我正在尝试这样做,我在正确的道路上吗?

echo " <div id='tabs-".$match."'>

    <textarea id='".$match."' name='".$match."'>".

    if ($COLUMN_NAME === $match)
        {
        echo $FIELD_WITH_COLUMN_NAME;
        }

    else
        {
        }

    ."</textarea>

<script type='text/javascript'>
CKEDITOR.replace( '".$match."' );
</script>

</div>";

我在浏览器中收到以下错误消息:

解析错误:语法错误,意外的 T_IF

请告诉我这是否是在回声中嵌套 IF 语句的正确方法。谢谢。

【问题讨论】:

  • 为什么你会想写这样的代码?将它分配给一个变量,然后回显它。更好的是,看看 MVC 设计模式。

标签: php if-statement echo nested


【解决方案1】:

没有。但是,您可以使用三元运算符。

$a = 0;
echo 'Foo ' . ($a == 0 ? 'zero' : 'non-zero') . ' Bar';

注意(),你需要它们。

【讨论】:

    【解决方案2】:

    使用 PHP 三元运算符,您可以阅读更多关于它的信息here。

    echo " <div id='tabs-".$match."'>    
        <textarea id='".$match."' name='".$match."'>".
        ($COLUMN_NAME==$match ? $FIELD_WITH_COLUMN_NAME : "").
         "</textarea>    
          <script type='text/javascript'>
          CKEDITOR.replace( '".$match."' );
         </script>    
         </div>";
    

    【讨论】:

      【解决方案3】:

      这会起作用

      $val = ""; 
      if ($COLUMN_NAME === $match)
              {
              $val =  $FIELD_WITH_COLUMN_NAME;
              }
      echo " <div id='tabs-".$match."'>
      
          <textarea id='".$match."' name='".$match."'>".    $val    ."</textarea>
      
      <script type='text/javascript'>
      CKEDITOR.replace( '".$match."' );
      </script>
      
      </div>";
      

      【讨论】:

        【解决方案4】:

        您不能将if 嵌套在echo 中。您需要将echo 拆分为单独的语句:

        echo " <div id='tabs-".$match."'>
        
            <textarea id='".$match."' name='".$match."'>";
        
            if ($COLUMN_NAME === $match)
                {
                echo $FIELD_WITH_COLUMN_NAME;
                }
        
        echo "</textarea>
        
        <script type='text/javascript'>
        CKEDITOR.replace( '".$match."' );
        </script>
        
        </div>";
        

        或使用the ternary operator:

        echo " <div id='tabs-".$match."'>
        
            <textarea id='".$match."' name='".$match."'>".
        
            (($COLUMN_NAME === $match) ? $FIELD_WITH_COLUMN_NAME : "")
        
            ."</textarea>
        
        <script type='text/javascript'>
        CKEDITOR.replace( '".$match."' );
        </script>
        
        </div>";
        

        【讨论】:

          【解决方案5】:

          使用... . ($COLUMN_NAME === $match) ? $FIELD-WITH_COLUMN_NAME : '' . ...

          忽略前面的if

          【讨论】:

            猜你喜欢
            • 2013-12-19
            • 1970-01-01
            • 2012-10-10
            • 1970-01-01
            • 2020-01-08
            • 2016-03-16
            • 2012-11-29
            • 1970-01-01
            • 2020-12-07
            相关资源
            最近更新 更多