在我的 PHP Web 应用程序中,我通常使用自定义函数验证用户输入,如果输入与验证条件不匹配,则返回 NULL,如果满足验证条件,则返回原始输入值。所以一个基本的流程看起来像这样:
$user_input = $_POST['fieldname'];
$user_input = validation_function($user_input);
if (isset($user_input)) {
// do stuff
}
这样做的好处是我可以接受任意数量的用户输入,验证它们,然后将它们isset()
作为参数粘贴到函数中,因为isset()
函数接受可变数量的参数。
现在,我已经阅读了很多关于 NULL 返回如何不好的内容,以及这个 SO 问题,“返回 null 是错误的设计吗?” 有一个很好的答案,基本上说“不返回 null 背后的理由是您不必检查它,因此您的代码不需要根据返回值遵循不同的路径”。我了解这对应用程序的内部工作有何好处,但是如何将这一原则应用于输入验证?
问题的关键是,我如何处理输入验证,而不必像上面提供的代码示例那样返回 NULL?