2010-11-01 58 views
9

我剛剛閱讀了關於heredocs的想法php doucmentation,但我沒有看到任何方式來正確地使用代碼。這可能在PHP?PHP:與Heredocs一起使用正確的縮進

現在我正在這樣做,但這對可讀性不好。

<?php 

     if(something){ 
      ... 
      echo <<< END  
        This is a test. I am writing this 
        text out. 
END; 
     } # end of if statment 

我想有這樣的事情:

<?php 

     if(something){ 
      ... 
      echo <<< END  
        This is a test. I am writing this 
        text out. 
      END; 
     } # end of if statment 

我知道bash有這樣做的方法(雖然我不記得它是什麼),所以我想知道,如果它是可能在php中做。我不這麼認爲,但我想我會問。

回答

7

這是PHP的限制,以正確的格式定界符語句。這是一個解析器的限制。由於文檔狀態:

這是需要注意的是,結束標識符的 行必須 包含任何其它字符很重要的,除了可能 分號(;)這意味着 尤其是t他的標識符可能不是 ,並且在 分號之前或之後可能沒有任何 空格或製表符。 也意識到,在結束標識符之前的第一個字符 必須是 由本地 操作系統定義的換行符。這是\ n在UNIX 系統上,包括Mac OS X. 結束分隔符(可能在分號後跟着 )也必須跟着 換行。

如果這個規則被打破 和結束標識符不 「乾淨」的,它不會被認爲是 結束標識符,而PHP就會 繼續尋找下去。如果在 當前文件的末尾沒有找到適當的 結束標識符,則會在最後一行發生解析 錯誤。

這是未知的,如果這將在PHP的未來得到解決。

2

據我所知,這是不可能的,你需要把關閉定界符標識沒有任何空格/製表符/縮進:(