2011-07-12 35 views

回答

2

編號變量(和特殊字符)只能在用雙引號分隔的字符串中擴展。如果你想在一個單引號分隔字符串的變量,你必須來連接它,而不是:

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

你也無法逃脫你的HTML的雙引號,如果你想用的雙人間引號分隔字符串:

​​

見PHP手冊on strings,尤其是部分上string parsing,以獲取更多信息。

18

您必須使用:

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

這種方法追加變量的字符串。

或者你可以使用:

echo "I love my $variable."; 

通知的雙引號這裏使用!

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

最後,有heredoc格式,允許單引號和雙引號以及變量。

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

如果有很多文字,請查看Heredoc語法。

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

從php.net摘自: 「注:不像雙引號和定界符語法,變量和逃避特殊字符序列時,它們發生在單引號字符串將不會擴大。」

所以答案是否定的。但你可以這樣做:

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

它會更清潔這種方式。

3

documentation說:

注:不像double-quotedheredoc語法,variables當它們出現在單引號的字符串逃脫特殊字符序列將擴大。

因此,答案是否定的,不是這樣的。

解決方法很簡單:

不要echo HTML。

只要你不創建像部分視圖或東西,沒有理由來回顯HTML。 PHP嵌入到HTML代替:

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

的好處是:

  • 不必記住引號逃逸。
  • 更容易維護HTML代碼。

†:在這種情況下heredoc[docs]是最糟糕的選擇。

-5

還是簡單的方法:

awk "\$1 < $variable" 
+2

這怎麼回答這個問題? – Werner

-1

使用轉義唱引號包圍的文本字符串爲:

variable='my dog' 

echo \''I love ' $variable\' 

=> '我愛我的狗'

+0

該代碼拋出一個解析錯誤。 – Quentin

0

旁邊其他用戶提到的解決方案(如字符串連接)可以使用以下佔位符;

注意%s是針對字符串的。

$variable = 'what ever'; 
printf('The $variable is %s', $variable); 
相關問題