繁体   English   中英

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

[英]Can I echo a variable with single quotes?

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

例子

echo 'I love my $variable.';

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

您必须使用:

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

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

或者你可以使用:

echo "I love my $variable.";

注意这里使用的双引号

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

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

文档说:

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

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

解决方案很简单:

不要echo显 HTML。

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

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

好处是:

  • 不必记住报价的 escaping。
  • 更容易维护 HTML 代码。

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

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

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

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

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

有关详细信息,请参阅 PHP字符串手册,尤其是字符串解析部分。

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

请注意 %s 用于字符串。

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

尝试这个

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

No. '不会解析变量。 利用

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

或者

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

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

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

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

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

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

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

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

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

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

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

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

这样会更干净。

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

variable='my dog'

echo \''I love ' $variable\'

=> '我爱我的狗'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM