【问题标题】:Can I echo a variable with single quotes?我可以用单引号回显变量吗?
【发布时间】:2011-07-12 20:43:26
【问题描述】:

我可以用单引号回显一个变量吗?

例子

echo 'I love my $variable.';

我需要这样做,因为我也有很多 HTML 要回显。

【问题讨论】:

    标签: php echo


    【解决方案1】:

    您必须使用:

    echo 'I love my ' . $variable . '.';
    

    此方法将变量附加到字符串。

    或者你可以使用:

    echo "I love my $variable.";
    

    注意这里使用的双引号

    【讨论】:

      【解决方案2】:

      如果文本很多,请查看 Heredoc 语法。

      $var = <<<EOT
      <div style="">Some 'text' {$variable}</div>
      EOT;
      

      【讨论】:

        【解决方案3】:

        documentation 说:

        注意:double-quotedheredoc 语法不同,variables 和特殊字符的转义序列不会被扩展当它们出现在单引号字符串中时。

        所以答案是否定的,不是这样的。

        解决方法很简单:

        不要echoHTML。

        只要您不创建像局部视图或 这样的东西,就没有理由回显 HTML。将 PHP 嵌入到 HTML 中:

        <div class="foo">
            <span><?php echo $value; ?></span>
        </div>
        

        好处是:

        • 不必记住引号的转义。
        • 更易于维护 HTML 代码。

        †:在这种情况下,heredoc [docs] 是最不差的选择。

        【讨论】:

          【解决方案4】:

          没有。变量(和特殊字符)仅在用双引号分隔的字符串中展开。如果要在单引号分隔的字符串中包含变量,则必须将其连接起来:

          echo 'I love my '.$variable.'.';
          

          如果您希望使用由双引号分隔的字符串,也可以转义 HTML 的双引号:

          echo "<a href=\"$url\">$text</a>";
          

          有关详细信息,请参阅 PHP 手册 on strings,尤其是 string parsing 上的部分。

          【讨论】:

            【解决方案5】:

            没有。 ' 不会解析变量。使用

            echo 'I love my '.$variable.'.';
            

            echo "I love my {$variable}. And I have \" some characters escaped";
            

            【讨论】:

              【解决方案6】:

              不在字符串内,但可以退出字符串,将变量串联进去。

              echo 'I love my '.$variable.'.';
              

              另一种选择就是转义双引号。

              echo "I love my \"$variable\".";
              

              或者只是进出php来回显变量(虽然丑)。

              I love my <?php echo $variable; ?>.
              With short tags enabled, I love my <?=$variable?>.
              

              最后是 heredoc 格式,允许单引号和双引号以及变量。

              echo <<<HTML
              I love my $variable. '"...
              HTML;
              

              【讨论】:

                【解决方案7】:

                取自 php.net: "注意:与双引号和heredoc语法不同,特殊字符的变量和转义序列在出现在单引号字符串中时不会被扩展。"

                所以答案是否定的,你不能。但你可以这样做:

                echo 'I love my' . $variable . '.';
                

                这样会更干净。

                【讨论】:

                  【解决方案8】:

                  除了其他用户提到的字符串连接等解决方案外,还可以使用如下的占位符;

                  注意 %s 用于字符串。

                  $variable = 'what ever'; 
                  printf('The $variable is %s', $variable);
                  

                  【讨论】:

                    【解决方案9】:

                    试试这个

                    <php echo 'I love my '. $variable . ' .'; ?>
                    

                    【讨论】:

                      【解决方案10】:

                      就我而言,我已将命令更改如下,它对我有用:在每个单引号(')旁边添加了两次双引号(“”)

                      PVALUE='1,2,3'
                      echo "variable='""${PVALUE},repmgr'""" >>postgresql.conf
                      
                      • 输出:

                        变量='1,2,3,repmgr'

                      #如何在单引号 bash shell 脚本中打印 echo 中的变量

                      【讨论】:

                        【解决方案11】:

                        使用转义单引号将文本字符串包围为:

                        variable='my dog'
                        
                        echo \''I love ' $variable\'
                        

                        => “我爱我的狗”

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2015-06-03
                          • 2023-03-08
                          • 1970-01-01
                          • 2016-09-22
                          • 1970-01-01
                          相关资源
                          最近更新 更多