2015年9月23日

PHP if構文その7 〜中カッコ{}の位置と美しいコード〜

«
»

Pocket

今回はif文の中カッコ{}の位置について書きたいと思います。
 
まずはサンプルプログラムを見てみましょう。
 


<?php

$box = "aaa"; 

if ($box == "aaa") { // { の位置はココ!
    echo "string is aaa.";
}else{ // } の位置はココ!
    echo "string is not aaa.";
}

解説

多くの参考書では中カッコ{}の位置は上サンプルのように
なっていると思います。
 
{ の位置は条件式の右側に。※()の中の式を条件式と言います。
} の位置はelseやelse ifの直前に。
 
下のサンプルを見てみましょう。

サンプルプログラム


$box = "aaa"; 

if ($box == "aaa") 
{ 
    echo "string is aaa.";
}
else
{ 
    echo "string is not aaa.";
}

解説

結論としてはどちらも同じ実行結果となります。
つまり、どっちの書き方でも実行すれば同じです。
 
ちなみに、中カッコ{}の持つ意味は()内の条件式を満たした場合=合致した場合
{}の中に書いてある処理を実行してください
、ということです。
 
では、なぜ最初のサンプルの書き方が参考書で取り上げられているのでしょうか。
私も明確な答えを持っていませんが、おそらくこっちのほうが(見た目的に)
美しいとされているのだと思います。

美しいコードとは

初心者の方からの質問で比較的多いのが
美しいコードや、キレイなコードってどういうことですか?
という質問です。
 
プログラム(コード)における美しさ、キレイさにはいくつかの要素
があると思いますが、基本的には「美しい絵」、「キレイな人」って
どういうことですか?という質問に明確に答えられないように曖昧

感覚的なものだと思います。
 
とはいえ、ゴッホやモネの絵は多くの人が「美しい」と思うから
人気ということなので、きっとなんらかの共通認識があるんですね。
 
プログラムにおける「美しさ」を私が考える範囲で分析したいと思います。
 

1.より短いプログラムであること
 
2.より無駄の無いプログラムであること
 
3.可読性の高いプログラムであること

 
美しいコードについてはどこかでまとめて書きたいと思いますが、
最後の可読性の高いプログラムであること、というのは
他の人が読んだ時に読みやすいか、ということです。

可読性のためのインデント

サンプルプログラムのなかで{}内の echo の前には
いくつかのスペースがあると思いますが、これはインデントと言って
この行は{}の影響範囲ですよ、ということを段落をずらすことで明示的に
表しています。
※ちなみに、半角スペースではなく、tabキーを使ってスペースをあけます。
 
このようにインデント(段落)をつけることで「あ、ここまでがこのif文の
影響を受けてるのね」ということがわかりやすくなります。
 
このように他の人が読みやすいコードというのは美しさの1要素となっています。
{}の位置も多くのエンジニアがそうしているので、他の人と違う書き方を
すると読みづらいということでこの位置に置くことが一般的になっています。

まとめ

・中カッコ{}の位置は一般的に(ある種の常識として)決まっている
・美しいコードには3つの要素があるっぽい

【関連する記事】