PHPで➀と➁は同じ意味ですか?
➀$a = 'x_'.$id.'';
➁$a = "x_{$id}";
もし同じであれば、なぜ➀の点々が1つの方では{}を使った次のような書き方ができないのでしょうか?
$a = 'x_{$id}'; // ← なぜこれができない?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
PHPで➀と➁は同じ意味ですか?
はい、最終結果としては同じになります。ただし、ニュアンス的にはちょっと違ってきます。
php
1//「x_」と「$id」と「空文字列」という3つの文字列を連結している 2$a = 'x_'.$id.''; 3 4// 文字列の途中に変数展開している 5$a = "x_{$id}";
もし同じであれば、なぜ➀の点々が1つの方では{}を使った次のような書き方ができないのでしょうか?
この疑問がどうして成立するのかがわからないのですが、変数展開ができるのは二重引用符の場合のみです(PHPマニュアル)。
プログラミングを行う場合、記号の種類も重要になってきます。「コロン」「セミコロン」「コンマ」「ピリオド」「一重引用符」「二重引用符」「バッククオート」など、記号を指す場合はきちんとした名前を使ったほうがいいでしょう。
投稿2019/05/21 02:44
総合スコア145183
0
簡単に言うとPHPの言語仕様上そのように決められているからです。
プログラミングにおいて、文字列であることを宣言する ''
や ""
について調べるにはPHPの文字列についてのリファレンスを確認すると良いです。
https://www.php.net/manual/ja/language.types.string.php
そのなかの変数のパースという部分に具体的な記載があります。
スクリプトが二重引用符で括られるかヒアドキュメントで指定された場合、 その中の変数はパースされます。
投稿2019/05/21 02:44
総合スコア6753
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
「点々」というとプログラミング的には通じないので
'
は「シングルクォーテーション」または「引用符」
"
は「ダブルクォーテーション」または「二重引用符」
として覚えてください。
PHPで➀と➁は同じ意味ですか?
動作させてみればわかります。
php
1<?php 2$id = 123; 3echo 'x_'.$id.''; 4echo "x_{$id}";
$a = 'x_{$id}'; // ← なぜこれができない?
仕様です。
注意: ダブルクォート 構文や heredoc 構文とは異なり、 変数と特殊文字のエスケープシーケンスは、 引用符 (シングルクオート) で括られた文字列にある場合には展開されません。
プログラムは思った通りにではなく、書いた通りに動きます。
PHPマニュアル:基本的なこと も読んで仕様を確認してください。
投稿2019/05/21 02:44
編集2019/05/21 02:45総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/21 02:49