• ベストアンサー

phpでこのコードで.ドットを入れる意味はなんです

phpでこのコードで.ドットを入れる意味はなんですか? <?php $num = 1; $num01 = 2; $num_01 = 3; echo $num."\n"; echo $num01."\n"; echo $num_01."\n";

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

  • ベストアンサー
  • Kaneyan-R
  • ベストアンサー率42% (1369/3192)
回答No.4

>price = 200みたいに=イコールがなくても変数になるんですね? はい? ちゃんと  $num = 1;  $num01 = 2;  $num_01 = 3; 変数「num」「num01」「num_01」と、3つ定義してありますよ。 何度も繰り返しますが、   echo $num."\n"; とは「変数numの値に改行文字を追加して出力する」と言う意味です。 変数numの値は「$num = 1;」と定義されているので、出力されるのは「1+改行」です。 同様に変数num01は「2+改行」、num_01は「3+改行」が出力されます。 >ご教示の通り、ドットをカンマに変えたら同じように1,2、3が出力されました はい。見た目は同じです。 ですが、過程が違います。 前の回答で書いた通り、  echo $num."\n"; では「変数numの値+改行文字」と言う“一つの文字列”を出力します。一方  echo $num,"\n"; では「変数numの値」と「改行文字」の“二つの文字列”を並べて出力します。 改行文字は「表示されない文字」なので、今回の場合は見た目はどちらも同じになりますが、出力されているのが「文字列一つ」か「文字列二つ」かの違いがあります。 「見た目同じならどっちでも良いじゃないか」と思うかも知れませんが、「見た目同じでも意味が違う」ことを理解しておかないと、その内ドツボにはまって抜け出せなくなりますよ。  

okwaveokw
質問者

お礼

現在プロゲートで勉強しているんですが、以前Pythonの基礎コースを勉強していて 関数と変数の違いの説明で、Price = 200 のようにイコールがあるものが変数という覚え方をしてしまったので、phpでは$をつけることで変数という決まりがあるが、変数ではないと理解していました。

その他の回答 (3)

  • Kaneyan-R
  • ベストアンサー率42% (1369/3192)
回答No.3

>ドットがないと何が間違っていることになるんでしょうか  echo $num"\n"; こう書いたのですか? Syntax Errorもそうだけど、それ以前に変数「num"\n"」なんて存在しないでしょう。 echoの書き方が間違ってます。 仮に二つの文字列を指定するなら  echo $num,"\n"; となります。 echo $num."\n"; の場合、出力されるのは「変数numの値+改行」と言う一つの文字列です。 echo $num,"\n"; の場合、出力されるのは「変数numの値」「改行」と言う二つの文字列です。

okwaveokw
質問者

お礼

ありがとうございます 変数は price = 200みたいに=イコールがなくても変数になるんですね? ご教示の通り、ドットをカンマに変えたら同じように1,2、3が出力されました echo $num,"\n"; echo $num01,"\n"; echo $num_01,"\n"; 同じものが出力されました

  • notnot
  • ベストアンサー率47% (4900/10361)
回答No.2

> .ドットをはずしたらエラーになりました。 なぜでしょうか? 文法的にでたらめなものを書くと、文法エラー(Syntax Error)になります。実行するためには、文法に沿って書く必要があります。

okwaveokw
質問者

お礼

ドットがないと何が間違っていることになるんでしょうか?

  • Kaneyan-R
  • ベストアンサー率42% (1369/3192)
回答No.1

「.」は文字列演算子で、  $num."\n"  は、考え方としては、  $num + "\n" と同じ意味です。変数numの値に改行文字(\n)を追加と言う意味になります。

okwaveokw
質問者

お礼

ありがとうございます .ドットをはずしたらエラーになりました。 なぜでしょうか? Parse error: syntax error, unexpected double-quoted string "\n", expecting "," or ";"

関連するQ&A