我可以重复使用单引号的变量?

问题描述 投票:10回答:11

我可以重复在单引号与变量?

echo 'I love my $variable.';

我需要这样做,因为我有很多HTML的呼应了。

php echo
11个回答
23
投票

您必须使用:

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

这种方法附加变量字符串。

或者你可以使用:

echo "I love my $variable.";

注意这里使用了双引号!


-1
投票

使用转义唱引号包围的文本字符串为:

variable='my dog'

echo \''I love ' $variable\'

=>“我爱我的狗”


7
投票

如果有大量的文字,看看在定界符。

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

4
投票

documentation说:

注意:与double-quotedheredoc语法,variables和逃避特殊字符序列将不会被替换,当它们发生在单引号的字符串。

因此,答案是否定的,不是这样的。

解决方法很简单:

不要echo HTML。

只要你不是在创造像部分观点或东西†,没有理由呼应HTML。 PHP嵌入到HTML改为:

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

其优点是:

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

†:在这种情况下heredoc [docs]是最糟糕的选择。


2
投票

号变量(和特殊字符)仅扩大用双引号分隔的字符串。如果你想在一个单引号分隔字符串的变量,你必须来连接它,而不是:

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

你也可以逃脱你的HTML的双引号,如果你想用的双人间引号分隔字符串:

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

见PHP手册on strings,特别是在string parsing部分,以获取更多信息。


0
投票

'将无法解析的变量。采用

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

要么

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

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?>.

最后,还有定界符的格式,使得单引号和双引号与变量一起。

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

0
投票

从php.net摘自:“请注意:当它们出现在单引号字符串特殊字符不像双引号和定界符语法,变量和转义序列不会被扩大。”

因此,答案是不,你不能。但是你可以做这样的:

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

这将是清洁这种方式。


0
投票

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

注意:%s是字符串。

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

0
投票

尝试这个

<php echo 'I love my '. $variable . ' .'; ?>
© www.soinside.com 2019 - 2024. All rights reserved.