在我的PHP Web应用程序中,我通常使用自定义函数验证用户输入,如果输入与验证条件不匹配,则返回NULL;如果验证条件满足,则返回原始输入值。因此,一个基本的流程会是这个样子:返回NULL用于输入验证
$user_input = $_POST['fieldname'];
$user_input = validation_function($user_input);
if (isset($user_input)) {
// do stuff
}
关于这样做的好处是,我可以采取任意数量的用户输入,对其进行验证,然后将它们粘到isset()
功能参数,因为isset()
函数需要可变数量的参数。
现在,我一直在阅读很多有关NULL返回是否很糟糕的问题,并且这个问题"Is returning null bad design?"有一个很好的答案,基本上声明“不返回null的基本原理是您不必检查因此,因此您的代码不需要遵循基于返回值“”的不同路径。我理解这在应用程序的内部工作中是如何有益的,但是如何将此原则应用于输入验证?
问题的关键是,我如何处理输入验证,而不必像上面提供的代码示例那样返回NULL?
有趣,谢谢。我看到你已经写了一篇关于isset正确使用的非常好的帖子,并没有链接到它。推荐阅读其他人:http://kunststube.net/isset –