複数のネストされたIFステートメントの代わりに使用できる制御構造。
例えば:
function change_password($email, $password, $new_password, $confirm_new_password)
{
if($email && $password && $new_password && $confirm_new_password)
{
if($new_password == $confirm_new_password)
{
if(login($email, $password))
{
if(set_password($email, $new_password))
{
return TRUE;
}
}
}
}
}
この関数は次のように使用されます。
if(!change_password($email, $password, $new_password, $confirm_new_password)
{
echo 'The form was not filled in correctly!';
exit;
}
私はすべての関数をこのように呼び出していますが、コーディングスタイルに何か問題があるのではないかと思います。私がこの設計に従うと、私が書くすべての関数がIFでネストされ、すべての段階でエラーがあるかどうかをチェックすることを意味するので、私は疑問を持っています。これは他の人がしていることですか?
このように記述された他のスクリプトはあまり見られません。ネストされたIFは三角形を作成し、真ん中に目的の結果しか得られません。真ん中に達していない場合は、何かが台無しになっています。
これは良い関数構造ですか?