- ベストアンサー
改行コードについて
phpで開発をしています。 テキストファイルに文字列を出力する際に、改行コードを扱う以下のような場合について、 ①$str='ab\ncd'; ②$str="ab\ncd"; ①の変数の内容を出力すると\nがそのまま出力されます。 ②の変数の内容を出力すると改行されて出力されます。 質問ですが、この二つの違いについては、 ①のときは\nという文字として出力された。 ②のときは改行コードとして出力された。 (バイトコードで見ると、二つのコードは違っている?) という認識で良いのでしょうか。 ご教示いただけますと幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
はい。その通りです。" と ' は機能が違います。 \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" → \を表現したい箇所がわかる