【发布时间】:2011-07-12 20:43:26
【问题描述】:
我可以用单引号回显一个变量吗?
例子
echo 'I love my $variable.';
我需要这样做,因为我也有很多 HTML 要回显。
【问题讨论】:
我可以用单引号回显一个变量吗?
例子
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;
【讨论】:
注意:与double-quoted 和heredoc 语法不同,variables 和特殊字符的转义序列不会被扩展当它们出现在单引号字符串中时。
所以答案是否定的,不是这样的。
解决方法很简单:
不要echoHTML。
只要您不创建像局部视图或 † 这样的东西,就没有理由回显 HTML。将 PHP 嵌入到 HTML 中:
<div class="foo">
<span><?php echo $value; ?></span>
</div>
好处是:
†:在这种情况下,heredoc [docs] 是最不差的选择。
【讨论】:
没有。变量(和特殊字符)仅在用双引号分隔的字符串中展开。如果要在单引号分隔的字符串中包含变量,则必须将其连接起来:
echo 'I love my '.$variable.'.';
如果您希望使用由双引号分隔的字符串,也可以转义 HTML 的双引号:
echo "<a href=\"$url\">$text</a>";
有关详细信息,请参阅 PHP 手册 on strings,尤其是 string parsing 上的部分。
【讨论】:
没有。 ' 不会解析变量。使用
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\".";
或者只是进出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 . '.';
这样会更干净。
【讨论】:
除了其他用户提到的字符串连接等解决方案外,还可以使用如下的占位符;
注意 %s 用于字符串。
$variable = 'what ever';
printf('The $variable is %s', $variable);
【讨论】:
试试这个
<php echo 'I love my '. $variable . ' .'; ?>
【讨论】:
就我而言,我已将命令更改如下,它对我有用:在每个单引号(')旁边添加了两次双引号(“”)
PVALUE='1,2,3'
echo "variable='""${PVALUE},repmgr'""" >>postgresql.conf
输出:
变量='1,2,3,repmgr'
#如何在单引号 bash shell 脚本中打印 echo 中的变量
【讨论】:
使用转义单引号将文本字符串包围为:
variable='my dog'
echo \''I love ' $variable\'
=> “我爱我的狗”
【讨论】: