2012-03-06 51 views
0

PHP新增功能。儘管跟隨了這本關於語法的書,但仍然對heredoc有一些令人沮喪的問題。下面的文字不應該縮進,因爲它應該是。heredoc不縮進或正常工作

<?php 

$text="Mike's"; 

echo <<<_END 

<!--END is just like double quoteing a var.. 
You can use single/double quotes without having to escape them first; inside 
END. The last _END tag, has to be on the start of new line with nothing allowed 
to procede it, not even whitespace--> 

This is the $text 'first line'. 

This is the $text 'second line'. 

This is the $text 'third line'. 
_END; 
?> 
+2

你期望什麼?不是這個? http://codepad.org/kp7Ba18a – Gordon 2012-03-06 11:25:37

+0

是的,正如書中的建議? – 2012-03-06 11:29:39

+1

本書建議如何?如果你想要一個答案,你必須問一個實際的問題。現在你只是說「它不工作」,但你不知道它是如何工作的,或者說你期望它輸出什麼。鏈接的鍵盤上的輸出非常類似於它的樣子。你認爲它應該縮進,你會得到什麼? – Gordon 2012-03-06 11:29:57

回答

2

基於「<!」的存在 - 您正在創建一個html頁面。

你看錯了問題,heredocs不會修改空格 - 但html會忽略它,除非你另有指定。要確認只是看看頁面的來源,這將是你所期待的。

如果你想空白被保存 - 使用< pre>標記或者更正確地使用真正的標記

<pre> 
This 
is 
3 lines 
<pre> 

This<br> 
is<br> 
3 lines<br> 

<p>This<p> 
<p>is</p> 
<p>3 line</p> 

將全部渲染3行。

w3 whitespace reference

+0

是的,我知道這一點,謝謝。這些評論對我來說是對規則的提醒。這本書說,END標籤會將它全部視爲雙引號,保留,空格,縮進和換行符,所以我認爲它被視爲HTMl的事實與這些標籤無關。 – 2012-03-06 11:34:41