• ベストアンサー

改行コードについて

phpで開発をしています。 テキストファイルに文字列を出力する際に、改行コードを扱う以下のような場合について、 ①$str='ab\ncd'; ②$str="ab\ncd"; ①の変数の内容を出力すると\nがそのまま出力されます。 ②の変数の内容を出力すると改行されて出力されます。 質問ですが、この二つの違いについては、 ①のときは\nという文字として出力された。 ②のときは改行コードとして出力された。 (バイトコードで見ると、二つのコードは違っている?) という認識で良いのでしょうか。 ご教示いただけますと幸いです。

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

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

はい。その通りです。" と ' は機能が違います。 \n や \r などのエスケープシーケンスは " の中だけで有効です。 $a = 'ab\ncd'; $b = "ab\ncd"; var_dump( strlen($a) ); var_dump( strlen($b) ); 正確には、' の中でも、\\ と \' のエスケープシーケンスだけ有効です。

その他の回答 (2)

  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.3

そうですね。 こちらにもそのように書かれています。 https://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax 引用符と二重引用符をご覧になってみてください。

  • RESOLD
  • ベストアンサー率36% (71/196)
回答No.1

たしか\nをそのまま書きたいときに'\とかしないといけないから、①だと値なのか\を表現したいのかわからなくなるから、かな? うろ覚えなんでこんなところでなく、ちゃんと調べてください。 'ab'\ncd' → abで切れてしまう "ab'\ncd" → \を表現したい箇所がわかる

関連するQ&A