字符串中的PHP变量

时间:2013-01-05 20:51:50

标签: php json

  

可能重复:
  Difference between single quote and double quote string in 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}实际变量。我读过你应该在它们周围放置括号以使它们成为变量,但它们仍然是字符串的一部分。关于我哪里出错的任何建议?

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分: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);
?>

答案 2 :(得分:1)

如果使用单引号来包装字符串,则只需终止字符串并连接变量和字符串的其余部分即可。像这样 -

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

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

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

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