2011-04-26 295 views
8

我想在EOT中插入一個變量但不工作(我是PHP新手,也許這就是爲什麼)。這段代碼是腳本的一部分,當我單獨回顯$username時,它顯示真實姓名,但是當我把它放在EOT中時,顯示純文本不是真實名稱。PHP在EOT中插入變量

我在做什麼錯?

$username=getUsername($ID); 

echo <<<'EOT' 

Some HTML code goes here 

Hello $username, welcome back! 

Some HTML code goes here 

EOT; 

回答

21

你必須離開這裏了單引號:

echo <<<'EOT' 

這表示'nowdoc'變種,它不進行內插變量。

但你需要原始"heredoc"語法不帶引號:

echo <<<EOT 
+0

是的,現在是工作..感謝了很多解釋,我的象形文字:) – 2011-04-26 00:19:19

+4

哦,順便說一句,你不*必須*將其命名爲'EOT'。您可以使用任何您喜歡的分隔符字符串。使用'echo <<< END'或'echo <<< HTML'(在文本塊之後使用'HTML;')也很常見。 – mario 2011-04-26 00:21:39

+0

請選擇此作爲解決方案,爲此清楚。謝謝。 – Homer6 2011-04-26 00:33:39

7
$variable = 'text'; 
echo <<<EOT 
Some {$variable} here 
EOT; 
+0

您能否添加一些解釋您爲什麼認爲這是解決方案的詞? – Trinimon 2013-04-08 20:28:52

+2

我碰巧找到同樣的問題,這就是我解決它的方法。在變量周圍放置{}可以替換var名稱作爲其值。 – s4nch3z 2013-04-26 03:03:52