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

时间:2011-07-12 20:43:26

标签: php echo

我可以在带引号的单引号中回显吗?

例如

echo 'I love my $variable.';

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

12 个答案:

答案 0 :(得分:23)

您必须使用:

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

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

或者您可以使用:

echo "I love my $variable.";

注意这里使用的双引号

答案 1 :(得分:7)

如果有大量文本,请查看Heredoc语法。

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

答案 2 :(得分:3)

documentation说:

  

注意:double-quotedheredoc语法不同,variables和特殊字符的转义序列 在单引号字符串中展开时进行扩展。

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

解决方案很简单:

请勿echo HTML。

只要您不创建部分视图或填充,就没有理由回显HTML。将PHP嵌入到HTML中:

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

好处是:

  • 不必记得逃避报价。
  • 更容易维护HTML代码。

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

答案 3 :(得分:2)

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

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

如果你更愿意使用由doble引号分隔的字符串,你也可以转义HTML的双引号:

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

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

答案 4 :(得分:0)

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

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

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

答案 5 :(得分:0)

不在字符串中,但您可以退出字符串并将变量连接到。

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;

答案 6 :(得分:0)

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

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

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

这样会更清洁。

答案 7 :(得分:0)

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

注意%s是字符串。

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

答案 8 :(得分:0)

尝试

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

答案 9 :(得分:0)

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

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

    variable='1,2,3,repmgr'

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

答案 10 :(得分:-1)

使用escape sing-quote将文本字符串包围为:

variable='my dog'

echo \''I love ' $variable\'

=&GT; “我爱我的狗”

答案 11 :(得分:-5)

或者简单的方法:

awk "\$1 < $variable"