シングルとダブルで大違い! ~PHPに仕組まれた改行コードの罠~

phpkaigyocode2
『改行コードを打った思ったら、改行されない上「\n」が文字として出力されたんだ』

何を言ってるんだかわからないと思いますが、自分も何が起こったのかわからなかった。
PHPエラーだとか打ち間違えとかそんなチャチなもんじゃ断じてない
まだまだ知らない基本がある片鱗を味わいました。

というわけで、ちょっとしたことなんですがPHPでハまった

スポンサード リンク

改行コードって

\n

※¥(円記号)も\(バックスラッシュ)も同じ意味です、表示する端末により異なります。

これですよね?
さて、

ペンチマン
レオパルドン
ゴーレムマン
キャノンボーラー
ビッグボディー

としたい場合PHPで

echo 'ペンチマン \n レオパルドン \n ゴーレムマン \n キャノンボーラー \n ビッグボディー';

としたら・・・、
htmlがこうなった

ペンチマン \n レオパルドン \n ゴーレムマン \n キャノンボーラー \n ビッグボディー

(--;)
ナニコレ?改行されてないじゃんっ!
ってか、改行コードが文字列として出力されてるじゃんっっっ!!

解決法はカンタン!カギはシングルではなくダブル!

別にウィスキーの分量ではなく「クォーテーション」
‘ と ” のこと。

なんとこの改行コード \n はダブルクォーテーションで括らないと有効じゃないんですって!

なんという落とし穴!どこの狩人だよ?こんな罠仕掛けるのはッッッ!
だからこうすれば改行されます

echo "ペンチマン \n レオパルドン \n ゴーレムマン \n キャノンボーラー \n ビッグボディー";

あと途中にダブルクォーテーションを含む場合は分けないといけないです。
例えば

echo '<a href="http://genicmanic.com/">GENIC MANIC OFFICIAL SITE</a>' . "\n" . '<p>新曲『トランスx3』絶賛配信中!</p>';

とかidとかclassとかhrefとかsrcとかHTMLではダブルクォーテーションが出現します。
その場合は面倒だけど分けてください。

あれ?HTMLってシングルクォーテーションでもいいんだっけ!?
ま、コレだと面倒だからヒアドキュメントというのを使えばラクなんでしょうね

ま、とにかく改行コード\nとか使わないといけないのっぴきならない状況の時、思い出してください!
改行コードにはダブルと!

コメント

Facebookコメント

※コメントしたけど表示されてない方へ

パーマリンクを変えてしまったおかげで表示されなくなってしまいました。
折角コメントいただいたのにスイマセンm(__)m
パーマリンク変更しても何とか表示できる方法を現在模索中です。

“Facebookコメント”じゃないコメントを残す

このコメント欄は一時的に且つ試験的に復活させ実装させています。スパムが増加すると廃止します。なのでできるだけFacebookのコメントでコメントをお願いします。m(__)m
なお、メールアドレスは公開されることはありません。