私のPHPWebアプリケーションでは、通常、入力が検証基準に一致しない場合はNULLを返すか、検証基準が満たされる場合は元の入力値を返すカスタム関数を使用して、ユーザー入力を検証します。したがって、基本的なプロセスフローは次のようになります。
$user_input = $_POST['fieldname'];
$user_input = validation_function($user_input);
if (isset($user_input)) {
// do stuff
}
これの良いところは、関数が可変数のパラメーターを受け取るため、任意の数のユーザー入力を受け取り、それらを検証してisset()
から、パラメーターとして関数に貼り付けることができることです。isset()
今、私はNULLの戻り値がどのように悪いかについて多くのことを読んでいます、そしてこのSOの質問、「nullを返すのは悪いデザインですか?」基本的に、 「nullを返さない理由は、nullをチェックする必要がないため、コードが戻り値に基づいて別のパスをたどる必要がないということです」というすばらしい答えがあります。これがアプリケーションの内部動作でどのように有益であるかを理解していますが、この原則を入力検証にどのように適用できますか?
問題の核心は、上記のコード例のようにNULLを返す必要がない方法で入力検証を処理するにはどうすればよいですか?