检查PHP中是否至少有一个字段不为空

检查PHP中是否至少有一个字段不为空,php,Php,我有以下字段:weight、size\u 1、size\u 2、size\u 3 我如何检查这些字段中的至少一个是否已填充 如果低于最小值,则应输出“错误,至少填写一个” 我可以用长if语句来检查是否为空,但它们是更好的方法吗 这些字段来自表单提交,因此获取它们的方式如下: $_POST['weight']; $_POST['size_1']; $_POST['size_2']; $_POST['size_3']; 假设它们都在一个数组中: function check_for_input($

我有以下字段:
weight、size\u 1、size\u 2、size\u 3

我如何检查这些字段中的至少一个是否已填充

如果低于最小值,则应输出“错误,至少填写一个”

我可以用长if语句来检查是否为空,但它们是更好的方法吗

这些字段来自表单提交,因此获取它们的方式如下:

$_POST['weight'];
$_POST['size_1'];
$_POST['size_2'];
$_POST['size_3'];

假设它们都在一个数组中:

function check_for_input($array){
     foreach($array as $value){
           if($value != "") return true;
     }
     return false;
}
function check_for_input($array, $filter){
     foreach($array as $key=>$value){
           if($value != "" && in_array($key, $filter)){ 
                return true;
           }
     }
     return false;
}
像这样使用它:

if(check_for_input($_POST)){ /*...*/ }
else { die("Error, fill one at least"); }
$filter = array('weight', 'size_1', 'size_2', 'size_3', /*...*/);
if(check_for_input($_POST, $filter)){ /*...*/ }
else { die("Error, fill one at least"); }

使用筛选器更新:
假设它们都在一个数组中:

function check_for_input($array){
     foreach($array as $value){
           if($value != "") return true;
     }
     return false;
}
function check_for_input($array, $filter){
     foreach($array as $key=>$value){
           if($value != "" && in_array($key, $filter)){ 
                return true;
           }
     }
     return false;
}
像这样使用它:

if(check_for_input($_POST)){ /*...*/ }
else { die("Error, fill one at least"); }
$filter = array('weight', 'size_1', 'size_2', 'size_3', /*...*/);
if(check_for_input($_POST, $filter)){ /*...*/ }
else { die("Error, fill one at least"); }

假设它们都在一个数组中:

function check_for_input($array){
     foreach($array as $value){
           if($value != "") return true;
     }
     return false;
}
function check_for_input($array, $filter){
     foreach($array as $key=>$value){
           if($value != "" && in_array($key, $filter)){ 
                return true;
           }
     }
     return false;
}
像这样使用它:

if(check_for_input($_POST)){ /*...*/ }
else { die("Error, fill one at least"); }
$filter = array('weight', 'size_1', 'size_2', 'size_3', /*...*/);
if(check_for_input($_POST, $filter)){ /*...*/ }
else { die("Error, fill one at least"); }

使用筛选器更新:
假设它们都在一个数组中:

function check_for_input($array){
     foreach($array as $value){
           if($value != "") return true;
     }
     return false;
}
function check_for_input($array, $filter){
     foreach($array as $key=>$value){
           if($value != "" && in_array($key, $filter)){ 
                return true;
           }
     }
     return false;
}
像这样使用它:

if(check_for_input($_POST)){ /*...*/ }
else { die("Error, fill one at least"); }
$filter = array('weight', 'size_1', 'size_2', 'size_3', /*...*/);
if(check_for_input($_POST, $filter)){ /*...*/ }
else { die("Error, fill one at least"); }

我可以看到你发了$\u的帖子。。我在$\u POST中还有其他字段/变量,它们总是用一些值填充,所以它不能正常工作,因为如果语句总是true(因为它们总是被填充),那么
null
看起来很糟糕,它应该是
!==“”
。还有,如果一个脚本kiddie发送size_4=bla,但所有字段都是空的,会发生什么情况?@yi_H——OP只希望至少有一个字段被填充是的,我就是这么说的。。。你的过滤方法至少阻止了这一点。唉,我做到了,是什么让你认为我没有做到?您是否已修复了
null
?你不应该宣传不好的做法,因为有那么多人信任你的信誉点。我可以看到你发了$\u帖子。。我在$\u POST中还有其他字段/变量,它们总是用一些值填充,所以它不能正常工作,因为如果语句总是true(因为它们总是被填充),那么
null
看起来很糟糕,它应该是
!==“”
。还有,如果一个脚本kiddie发送size_4=bla,但所有字段都是空的,会发生什么情况?@yi_H——OP只希望至少有一个字段被填充是的,我就是这么说的。。。你的过滤方法至少阻止了这一点。唉,我做到了,是什么让你认为我没有做到?您是否已修复了
null
?你不应该宣传不良行为,因为人们信任你有那么多的信誉点。