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

外側の引用符を double に変更した場合、文字列内の引用符も single に変更する必要があることに注意してください。そこに二重引用符を残すこともできますが、それらをエスケープすることを心配する必要が\"あり、コードは読むのが本当に面倒になります:)

于 2013-01-05T20:57:18.987 に答える