Переменные в фигурных скобках - вопрос кодирования PHP - PullRequest
2 голосов
/ 24 августа 2011

Это мой скрипт PHP / MySQL:

<?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>";
?>

Однако, сработало бы, если бы я сделал это так:

{$myvariable}

Это хорошая идея для кодирования переменных с фигурными скобками, или как:

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

Любая помощь приветствуется, спасибо!

Ответы [ 2 ]

8 голосов
/ 24 августа 2011

Вы можете сделать это:

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>

Для одинаковых одинарных кавычек и двойных кавычек.

4 голосов
/ 24 августа 2011

Лично я предпочитаю использовать синтаксис " " . $row['variable']. " ", потому что код легче читать, особенно если у вас есть подсветка синтаксиса кода. Но использование этого синтаксиса допустимо: "{$var['field']}".

...