查找IF语句哪个$ _POST变量为空

时间:2019-02-16 16:27:49

标签: php

如果我在一个$_POST语句中使用多个变量,是否可以找到确切的if变量为空?

这是if语句的简单示例:

if(empty($_POST['Type']) || empty($_POST['Company']) || empty($_POST['InvoiceNumber']) || empty($_POST['Price']) || empty($_POST['Date'])) 
{
    header("Location: ".HOST."invoice_final.php?ErrorFillInfo=???");
}

现在我需要知道的是,是否有一些简单的解决方案来知道哪些$_POST变量为空,然后我想用“ ???”替换那些变量。并使用GET方法在下一页上显示确切的字段。

我可以用一种非常复杂的方式做到这一点,即将所有五个$_POST变量分成单独的if语句,并在每个header()语句之后调用if函数,但是这看起来太复杂了,因此我问是否有更好的方法来检查确切的$_POST空变量。

1 个答案:

答案 0 :(得分:2)

您可以使用array_filter()array_diff()从数组中找到空元素

$non_empty_element = array_filter($_POST);
$empty_element = array_diff($_POST,$non_empty_element);
print_r($empty_element);

演示: https://3v4l.org/hXGVU

基于OP的评论

  

我在页面上有10个输入字段,但只有这五个字段($ _POST)   必须填写休息不是必须的。但是然后我会在使用后得到   array_diff也这些在$ empty_element里面...你了解我的吗   点?有什么方法可以只过滤这些重要的$ _POST THX

DEMO2 https://3v4l.org/KvaB8