-1

可能重复:
php中单引号和双引号字符串的区别

我有以下内容:

<?php
$message = '<div id="msg-status" class="msg-status">Item #{$item} - {$desc} has been added successfully.</div>';
        $data    = array(
            'success' => $products_table,
            'message' => $message
        );
        header('Content-type: application/json');
        echo json_encode($data);
?>

有人可以帮我制作 {$item} 和 {$desc} 实际变量。我读到您应该在它们周围加上括号以使它们成为变量,但它们仍然作为字符串的一部分出现。关于我哪里出错的任何建议?

4

3 回答 3

3
<?php
$message = '<div id="msg-status" class="msg-status">Item #'.$item.' - '.$desc.' has been added.';
?>

使用上面。您不必将变量添加到引号内的字符串中,而是必须使用“ . ”将其与字符串连接起来。

于 2013-01-05T20:54:48.867 回答
3

字符串中的变量只有在字符串用双引号而不是单引号时才会被扩展。

<?php
$message = "<div id=\"msg-status\" class=\"msg-status\">Item #{$item} - {$desc} has been added successfully.</div>";
    $data    = array(
        'success' => $products_table,
        'message' => $message
    );
    header('Content-type: application/json');
    echo json_encode($data);
?>
于 2013-01-05T20:54:53.340 回答
1

如果您使用单引号来包装您的字符串,您将简单地终止字符串并将变量和字符串的其余部分连接起来。像这样 -

$epoch = time();
$a = 'Epoch time is' . $epoch . ', woohoo!';

如果您使用引号来包装字符串,则可以将变量直接放入字符串中。像这样 -

$epoch = time();
$a = "Epoch time is $epoch, woohoo!";

通常,为了更好的可读性,我会使用双引号和大括号来表示字符串中的变量 -

$epoch = time();
$a = "Epoch time is {$epoch}, woohoo!";

把它们放在一起,你的字符串必须看起来像这样 -

$message = "<div id='msg-status' ... >Item #{$item} - {$desc} ...</div>";

请注意,如果我们将外部引号更改为双引号,则字符串中的引号也必须更改为单引号。你可以把双引号放在那里,但是你需要担心转义它们\",你的代码读起来真的很烦人:)

于 2013-01-05T20:57:18.987 回答