2011-08-24 77 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