我正在制作调查网站。我只想知道是否真的有必要使用isset
和!empty
将每个POST数据验证到数据库中。我有大约30列,我发现它是多余的。
有没有比这更清洁的方式?
编辑:
如果我有可选字段怎么样?我怎么来的?
答案 0 :(得分:0)
你可以这样做:
PHP 5.5:
if(!empty(array_filter($_POST)))
{
//there are non-empty fields in $_POST
}
PHP< 5.5:
$filtered = array_filter($_POST);
if(!empty($filtered))
{
//there are non-empty fields in $_POST
}
这种差异是因为在PHP 5.5之前empty()
无法接受非变量(例如表达式)
编辑:如果您有一些可选字段,那么您可以处理此问题,例如,有必填字段列表:
$array = ['one'=>36, 'two'=>null, 'three'=>'data', 'four'=>0];
$mandatory = ['one', 'three'];
$data = array_intersect_key($array, array_flip($mandatory));
if(!empty($data))
{
//all mandatory fields are not empty
}