2011-08-24 65 views
2

這是我的PHP/MySQL的腳本:變量在括號 - PHP編碼問題

{$myvariable} 

這是個好主意:

<?php 
    mysql_connect('localhost', 'root', 'test') or die (mysql_error()); 
    mysql_select_db('info1') or die (mysql_error()); 
    $result = mysql_query("SELECT * from automobiles"); 

    //Table starting tag and header cells 
    while($row = mysql_fetch_array($result)){ 
     //Display the results in different cells 
     echo "<dd><dl><img src=' " . $row['image'] . " '>" . $row['manufacturer'] ." " . $row['model'] . "</dd></dl>"; 
     echo "<dd><dl>" . $row['carinfo'] . "</dd></dl>"; 
    } 

    //Table closing tag 
    echo "</table>"; 
?> 

然而,就如果我這樣做了它的工作用大括號代碼變量,或者如下:

echo " . $row['variable']. " 

任何幫助表示讚賞,謝謝!

回答

8

你可以這樣做:

echo "<dd><dl>{$row['carinfo']}</dd></dl>"; 

你不能做到這一點:

echo "<dd><dl>$row['carinfo']</dd></dl>"; 

這也不會工作:

echo '<dd><dl>{$row['carinfo']}</dd></dl>'; 

你的輸出將實際上是:

<dd><dl>{$row[一些PHP錯誤

這是由於使用單引號代替雙引號。而這個錯誤會是因爲你沒有在變量內部轉義單引號。

如果你這樣做:

echo '<dd><dl>{$row["carinfo"]}</dd></dl>'; 

你的輸出就會實際上是:

<dd><dl>{$row["carinfo"]}</dd></dl>

出於同樣的單引號VS雙引號推理。

+0

+1會說同樣的事情,我看到2個新的答案:P – 2011-08-24 17:16:21

+0

要添加一些信息:請記住,「內聯」變量只有在你的字符串分隔符是雙引號(即''「 '')。包含單引號(''')的字符串將不會被處理(即沒有變量或轉義字符將被替換) –

+0

@Martin - 已添加該方面 – Neal

4

我個人更喜歡使用" " . $row['variable']. " "語法,因爲它更容易閱讀代碼,特別是如果您有代碼語法高亮顯示。但是使用這種語法是可以接受的:"{$var['field']}"

+1

甚至'「{$ var}」'如果您使用正確的IDE,則顯示效果良好... – Neal