2012-06-12 34 views
4

我正在通過這個PHP工作& MySQL書籍和我遇到了一些與我用來回顯多行單引號字符串的東西完全不同的東西。多行上的單引號字符串

給出的例子是這樣的:

echo '<table align="center" cellspacing="0" cellpadding="5" width="75%"> 
     <tr> 
      <td align="left"><b>This</b></td> 
      <td align="left"><b>That</b></td> 
      <td align="left"><b>Then</b></td> 
      <td align="left"><b>When</b></td> 
      <td align="left"><b>What</b></td> 
     </tr>'; 

很顯然,我可能爆發的PHP和使用HTML,但是這並不總是一個選擇。當我沒有這樣的選擇,我通常會打破我的字符串以方便您閱讀這樣:

echo '<table align="center" cellspacing="0" cellpadding="5" width="75%">' . 
     '<tr>' 
     '<td align="left"><b>This</b></td>' . 
     '<td align="left"><b>That</b></td>' . 
     '<td align="left"><b>Then</b></td>' . 
     '<td align="left"><b>When</b></td>' . 
     '<td align="left"><b>What</b></td>' . 
     '</tr>'; 

這本書的作者在PHP社區深受尊重,這本書值得推薦,是審查好...所以我的問題是這樣的:

他的方法有什麼問題,應該實踐嗎?

+0

有沒有什麼不對的地方,但考慮使用['定界符syntax'(HTTP:// www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc)用於多行字符串。 – Josh

+1

爲什麼第二個版本比第一個版本更容易閱讀?我會說相反,所有在那裏添加的標點符號... – deceze

+0

第二種方法是我學會了回覆多行字符串的原始方式。它讓我知道沒有多餘的空格或製表符。但正如你所看到的,我可以很容易地搞砸了:在第2行丟失了一個點。 – jremydeaton

回答

5

不,根本沒有什麼問題。請注意,引用字符串中的空格,製表符和換行符也會被輸出。這很少是一個問題 - 只需記住一些事情。

對我來說,閱讀起來要容易一點,而且比你的方式更難以弄錯。事實上,你的例子有一個語法錯誤。你能找到丟失的點嗎?

+0

找到了! :)我想我會需要謹慎的任何一種方式.. – jremydeaton

+1

此功能在NetBeans中。如果你正在輸入一個字符串,然後你按回車鍵,那麼當前行將被引用關閉,並且新行被連接。 – Broncha

5

甚至有更多的可能性

?> 
<table align="center" cellspacing="0" cellpadding="5" width="75%"> 
    <tr> 
     <td align="left"><b>This</b></td> 
     <td align="left"><b>That</b></td> 
     <td align="left"><b>Then</b></td> 
     <td align="left"><b>When</b></td> 
     <td align="left"><b>What</b></td> 
    </tr> 
<?php 

echo <<<HTML 
<table align="center" cellspacing="0" cellpadding="5" width="75%"> 
    <tr> 
     <td align="left"><b>This</b></td> 
     <td align="left"><b>That</b></td> 
     <td align="left"><b>Then</b></td> 
     <td align="left"><b>When</b></td> 
     <td align="left"><b>What</b></td> 
    </tr> 
HTML; 

第一個是在每一個IDE識別爲HTML,第二個至少在PHPStorm,因此集成開發環境可以通過突出顯示它在HTML的語法高亮,這是一個巨大的受益比你兩個例子(旁註:PHPStorm凸顯字符串HTML過,因此並不壞;)但據我記得它不能驗證字符串中的HTML)

另外,你應該從處理代碼中分離輸出 -

+0

你的第一個是我的意思是突破php – jremydeaton

+0

啊,好的,我明白了。如果您將視圖與應用程序層分開(可能會將其稱爲「模板」),那麼這就是_always_選項:) – KingCrunch