最初に 何においてもそうですが、どのような場合にも当てはまるやり方というものではありません。 ケースによっては逆に読みづらくバグを生みやすくなる場合もあります。 これから紹介するものは、コードを最適化するとき、読みやすくするときの手段の一つとして理解していただければと思います。 ガード節とは 処理の対象外とする条件を、関数やループの先頭に集めて return や continue/break で抜ける方法です。 ネストを減らし正常系の処理がわかりやすくなるメリットがあります。 具体例 まずは悪い例です。 function check($a, $b, $C) { if (is_null($a)) { $result = 0; } else { if (is_null($b)) { $result = 0; } else { if (is_null($c)) { $result = 0; }
![初心者向け。覚えておきたい 「ガード節」という書き方。 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/711eb3d11c3d36e446ec98923cb6b511eab3650c/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUU1JTg4JTlEJUU1JUJGJTgzJUU4JTgwJTg1JUU1JTkwJTkxJUUzJTgxJTkxJUUzJTgwJTgyJUU4JUE2JTlBJUUzJTgxJTg4JUUzJTgxJUE2JUUzJTgxJThBJUUzJTgxJThEJUUzJTgxJTlGJUUzJTgxJTg0JTIwJUUzJTgwJThDJUUzJTgyJUFDJUUzJTgzJUJDJUUzJTgzJTg5JUU3JUFGJTgwJUUzJTgwJThEJUUzJTgxJUE4JUUzJTgxJTg0JUUzJTgxJTg2JUU2JTlCJUI4JUUzJTgxJThEJUU2JTk2JUI5JUUzJTgwJTgyJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0xZjMyMGZlMDk3ZWVlY2RkNDE5ODE1MjJhNDllNzEzOQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa291eWFuJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz03MjJjZTEzNzNhYWVhYzI4MDExNzUzYjdmYWZkOTBkMw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D771a24bf153e64ec3e3fba7a0807a051)