ガード節とは
if else
文の入れ子構造を解消する方法です。
if else
文の入れ子構造
public function hoge($a, $b) {
if ($a > 0) {
$result = 'fuga';
} else {
if ($b > 0) {
$result = 'piyo';
} else {
$result = 'piyopiyo';
}
}
return $result;
}
ガード節で書き換えると以下のようになります。
public function hoge($a, $b) {
if ($a > 0) {
return 'fuga';
}
if ($b > 0) {
return 'piyo';
}
return 'piyopiyo';
}
メリット
- 一時変数を使わなくて済む。
- ネストが減り、コードがシンプルになる。
- 正常処理と異常処理の区別が分かりやすくなる。
ガード節を使う場面と使わない場面
使う場合
if else
文のどちらか片方が良く起こる。
一方が正常処理でもう片方が異常処理を扱う場合によく使います。
使わない場合
if else
文のどちらも同程度起こりうる。
両方とも正常処理の場合は、if else
を用います。
リファクタリングを行う際によく出てくる手法なので、試してみてください!