我可以在带引号的单引号中回显吗?
例如
echo 'I love my $variable.';
我需要这样做,因为我有很多HTML也可以回应。
答案 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)
注意:与double-quoted和heredoc语法不同,variables和特殊字符的转义序列 不 在单引号字符串中展开时进行扩展。
所以答案是否定的,不是这样的。
解决方案很简单:
请勿echo
HTML。
只要您不创建部分视图或填充†,就没有理由回显HTML。将PHP嵌入到HTML中:
<div class="foo">
<span><?php echo $value; ?></span>
</div>
好处是:
†:在这种情况下,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"