2013-07-02 18 views
1
<?php 

$value="Hello"; 

echo ' 
<table border="1"> 
<tr> 
<td>Row $value, cell 1</td> 
<td>Row 1, cell 2</td> 
</tr> 
</table> 
'; 
?> 

爲什麼我沒有得到你好而不是$值。 如何使之成爲可能。HTML中的PHP代碼本身是封閉在PHP中

+1

因爲你使用單引號(字符串文字) –

回答

0

您只能在雙引號中打印Php變量,而不能在單個引號中打印。

或者

echo ' 
<table border="1"> 
<tr> 
<td>Row '.$value.', cell 1</td> 
<td>Row 1, cell 2</td> 
</tr> 
</table> 
'; 
?> 
0

你需要將其封裝在雙引號,這樣的處理器將內部評估的變量。

echo " 
<table border='1'> 
<tr> 
<td>Row $value, cell 1</td> 
<td>Row 1, cell 2</td> 
</tr> 
</table> 
"; 
+0

你需要逃脫雙引號,然後在邊境屬性。 – Revent

+0

Doht。修復。 – aynber

0

您可以使用類似雙引號內的變量,但不能使用單引號。做到這一點,而不是:

echo ' 
<table border="1"> 
    <tr> 
    <td>Row '.$value.', cell 1</td> 
    <td>Row 1, cell 2</td> 
    </tr> 
</table>'; 

或者你也可以做到這一點,逃避你的字符串引號:

echo " 
<table border=\"1\"> 
    <tr> 
    <td>Row $value, cell 1</td> 
    <td>Row 1, cell 2</td> 
    </tr> 
</table>"; 

不過,我建議,因爲它更高效和更清潔的代碼做了第一種方式。

4

基本的PHP解析規則:用單引號(')包圍的字符串是不是由PHP解析器評估,其中的任何變量都被忽略爲文字文本。嘗試

echo " 
... 
    $value 
... 
"; 

改爲。請注意使用雙引號(")。

此外,請不要使用多線回聲。他們很難維護。如果您必須執行多行輸出或分配,請考慮使用HEREDOC代替。

here文檔刪除需要引用的報價,讓你的迴音變爲:

echo <<<EOL 
<table border="1"> 
    ... 
    $values 
    ... 
</table> 
EOL; 
-1

原因是,如果你會使用單引號,然後解析器不會看在它的變量。 爲此,您需要使用雙引號或將變量放在單引號之外。

<?php 

$value="Hello"; 

echo ' 
<table border="1"> 
<tr> 
<td>Row '. $value .', cell 1</td> 
<td>Row 1, cell 2</td> 
</tr> 
</table> 
'; 
?> 

OR

<?php 

$value="Hello"; 

echo " 
<table border='1'> 
<tr> 
<td>Row $value, cell 1</td> 
<td>Row 1, cell 2</td> 
</tr> 
</table> 
"; 
?> 
+1

而不是發佈你的代碼版本,你應該包括你認爲的錯誤以及如何解決它。只是發佈一段代碼對任何人都沒有幫助。 – meagar

+0

對不起Meagar,我會解決它。 – Sumoanand

0
<?php 

$value="Hello"; 

echo ' 
<table border="1"> 
<tr> 
<td>Row ' . $value . ', cell 1</td> 
<td>Row 1, cell 2</td> 
</tr> 
</table>'; 
?> 
0

使用字符串多行的從來都不是我一個很好的解決方案。我喜歡heredoc

$value="Hello"; 

echo <<<EOD 
    <table border="1"> 
    <tr> 
     <td>Row {$value}, cell 1</td> 
     <td>Row 1, cell 2</td> 
    </tr> 
    </table> 
EOD;