これ常識なのかなあ。
知らなかったので書いときます。
PHP では
<?php と ?> で囲まれた部分が PHP のコード、
それ以外の部分が HTHL と見なされる。
「デザインとロジックを分離」すれば
両者が混在することはないんだけど、
たとえば CakePHP の view の中には
どうしても PHP のコードを書くことになる。
こういう場合にちょっと困るのが
PHP の閉じタグ ?> のあとの改行が無視される点。
例えばこう書くと
<tr> <th>おなまえ</th> <td> <?php echo $form->text('User.name'); ?> </td> </tr>
こんなふう(一部略)に出力されてしまって
<tr> <th>おなまえ</th> <td> <input name="data[User][name]" type="text" /> </td> </tr>
何だか見栄えがよくない。
そんなこまいことは気にせずに
さっさと開発を進めた方がいいとも思うんだけど、
せめてインデントくらいは揃えたいところ。
これを解決するのにすぐ思いつく方法は次の2つ。
- ?> の改行後にもうひとつ空行を入れる。
- PHP を閉じる前に改行コードを出力する。
でもそれだと今度は
PHP のコードの方が見づらくなってしまうし
余計なものが入るから何だかスマートじゃない。
これはもう仕方ないかなあ、と思っていたのだが、
もう一つ方法があることを知った。
- ?> の後にスペースを入れる。
つまりこういうこと。
<tr> <th>おなまえ</th> <td> <?php echo $form->text('User.name'); ?>_ </td> </tr>
_ の部分に半角スペースをひとつ入れるという意味ね。
これでちゃんと ?> の後に改行が入った。
<tr> <th>おなまえ</th> <td> <input name="data[User][name]" type="text" /> </td> </tr>
うん、もっとスマートじゃない。やめよう。
2011/10/09 02:25
なるほど、確かに綺麗ですね!