問題
こんなソースコードを見たことありませんか?
そして、これを少しでも読みやすくしてみましょう!
function checkData($data) {
if ($data) {
if (is_array($data)) {
foreach ($data as $key => $value) {
if ($key == '特定のキー') {
if (is_numeric($value)) {
// 処理A
} else {
// エラー処理
}
} else {
// 別の処理
}
}
} else {
// データが配列でない場合の処理
}
} else {
// データがない場合の処理
}
}
これは読む気が失せます。そして間違いも起こりやすいです。この可読性の悪いソースコードを読みやすくしましょう。
答え
function checkData($data) {
if (empty($data)) {
// データがない場合の処理
return;
}
if (! is_array($data)) {
// データが配列でない場合の処理
return;
}
foreach ($data as $key => $value) {
if ($key != '特定のキー') {
// 別の処理
continue;
}
if (! is_numeric($value)) {
// エラー処理
continue;
}
// 処理A
}
}
処理が出来ない値を渡された場合、早期に return することでネストを浅くできます。
エラー処理を先行し、「処理A」を一番最後にもってくることで、正常系の処理を集中して書くことが出来ます。
ぜひ普段の実装に取り入れてみましょう!