• ベストアンサー

PHPで変数についての質問です

変数はよく箱と言われますがその中に入る状態で疑問が出てきました。 $a=1; だと、空の箱に 1 が入ったイメージがわきますが・・・ $b="あ"; だと、空の箱に "あ" が入ったことになるのでしょうか? もしくは、空の箱に あ が入ったことになるのでしょうか? 続いて・・・ $b="あ"; print "$b"; の場合 "あ" の " はどの段階ではずれているのでしょうか? ご教示よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • gmataw
  • ベストアンサー率50% (12/24)
回答No.3

> $b="あ"; > だと、空の箱に "あ" が入ったことになるのでしょうか? > もしくは、空の箱に あ が入ったことになるのでしょうか? あ が入った事になります。 > $b="あ"; > print "$b"; > の場合 "あ" の " はどの段階ではずれているのでしょうか? まず、$b = "あ"; で $b の中に あ が入りますよね。 で、printに関してですが、以下は同じ処理になります。 print $b; print "$b"; 通常、変数または数値以外をprintする場合はシングルクオート ' か ダブルクオート " でくくります。 シングルクオートとダブルクオートの違いは変数を展開するかどうか という事になります。 $str = 'Hello!'; print $str; // 「hello!」と表示される print '$str'; // 「$str」と表示される(※変数が展開されない) print "$str"; // 「hello!」と表示される print "$str hoge"; // 「hello! hoge」と表示される

その他の回答 (2)

回答No.2

あんまりあーだーこーだ言うときっと余計にこんがらがるでしょう。 なので、シンプルに答えちゃいます。 $b="あ"; だと、空の箱に あ が入ったことになります。 ""(ダブルクォーテーション)で囲っているのは、あくまでここは文字列なんですよ、と謳っているだけです。 なので入れたい内容が1という数値の値としても、 数値としての $b = 1; 文字列としての $b = "1"; の2パターンが存在するわけです。 $b="あ"; print "$b"; ここでは、文字列を出力せよ、と命令しています。 「"」は先に説明した通りである為、別に「"」を出力しようとしているわけではありません。 「"」を出力する場合、 print "\"$b\"";などと「"」を「\」でエスケープします。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

考え方の問題はありますが、文字列の場合実際には 文字列のアドレスが入ります。数値は数値そのもの が入ります。 >$b="あ"; >print "$b"; "あ"は外れていません。""の中は変数の評価はあり ません。変数は評価されて始めてその値が得られる 訳です。 print $b; が正解です。

関連するQ&A