7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

複数行が関係している事を解りやすくする工夫(なのだと思う)

Posted at

これは面白いとおもった事を書いた記事なので、「正しい事」ではありません(今時ならコーディング規約に違反しそう)。多くの場合、無駄な工夫などせず普通が一番ですね!

PHPにはPerlみたいなお手軽ブロックスコープはない(と思う)のだけれど、以下のようなコードを見かけることがある。

<?php
{   // Do Foo
    $foo = getFoo();

    doHoge($foo);
}

{   // Do bar
    $bar = getBar();
}

これは以下のように書いた時と差は無い(と、思うんだけどそこまでの自信はない。皆さまご存じの通り(?)、Perlではちゃんと意味や意義がある)。

<?php
// Do Foo
$foo = getFoo();

doHoge($foo);

// Do bar
$bar = getBar();

これは「ここからここまでがこの処理」という風にコードを読みやすくする為だと思う。現実によくある二つ目のようなコードは「"Do Foo"コメントが"doHoge()"にかかるのか?」みたいなのが解りづらいことはしばしばある。(そのようなコメントの書きかたが悪い、というのはさておき)

それを回避するために「// End of Do Foo」みたいな事書いてるコードも(希に)あったりするが、この{〜}を使う手法はそれよりはスタイリッシュ…なのだろうか。

同様に、PHPではないけど、どうしても行数が増えるHTMLとかだとしばしば以下みたいな努力がなされる事が多いですね。(個人的にはIDEのお世話になっているので、やらないけど)

<div id='hoge'>
  MANY LINES HERE..
</div><!-- /hoge -->

思考停止しながらつらつらとながーーーく手続きを書いて、適当にコメントをさしこんでいくと、前述の通り「これってどこまでがこのコメントの範囲なの?」ってなりやすいので、まあその回避のために{〜}をつかう人もいるのかなと思った。

放っておくと無限に行がふえやすい、ルーターとか定義のコードとかではよいのかな…。

とはいえPHPはHTMLじゃないので「関数なりメソッドなりに切り出さない設計が悪いんだ!」といわれればまあそうかもですね。けれど、絶対に1箇所からしか参照されない手続きを関数を切り出すのもどうなのかと思う事もあるのが人情だとおもうし、こういう工夫が好きな人もいそうだなとおもった。(なお、残念ながらPHPStormでは{〜}のフォールディングはできないようだ)

こういうの、多分私なら2回くらい使ってみてその後は忘れてしまう系の工夫ですが、メモしておきます。

7
5
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?