我可以使用单引号回显一个variables吗?

我可以使用单引号与variables回声吗?

echo 'I love my $variable.'; 

我需要这样做,因为我有很多的HTML回声太。

您必须使用:

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

此方法将variables附加到string。

或者你可以使用:

 echo "I love my $variable."; 

注意这里使用的双引号

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

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

该文件说:

注意:与双引号和heredoc语法不同 ,特殊字符的variables和转义序列在单引号string中不会被展开。

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

解决scheme很简单:

不要echo HTML。

只要你不创build像部分视图或东西 ,没有理由来回显HTML。 将PHPembedded到HTML中:

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

好处是:

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

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

编号variables(和特殊字符)只能在用双引号分隔的string中扩展。 如果你想在一个单引号分隔的string中包含一个variables,你必须连接它:

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

如果您希望使用由双引号分隔的string,也可以使用HTML的双引号:

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

有关更多信息,请参阅关于string的PHP手册,特别是有关stringparsing的部分。

不会的'不会分析variables。 使用

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

要么

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

不在string内,但可以退出string并连接variables。

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

另一个select只是为了避免双引号。

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

或者只是进出php来回显variables(虽然丑陋)。

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

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

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

取自php.net:“注意:与双引号和heredoc语法不同,特殊字符的variables和转义序列在单引号string中不会被展开。

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

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

这样会更清洁。

除了其他用户提到的解决scheme(如string连接)之外,您可以使用以下占位符;

注意%s是用于string的。

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

使用转义单引号将文本string包围为:

 variable='my dog' echo \''I love ' $variable\' 

=>'我爱我的狗'

或者简单的方法:

 awk "\$1 < $variable"