如果任何这些变量为空,则运行语句

时间:2014-01-13 05:42:32

标签: php

所以我有这个:

$title = $_POST['title'];
$keywords = $_POST['keywords'];
$purpose = $_POST['purpose'];
$special = $_POST['special'];
$length = $_POST['length'];
$email = $_POST['email'];

如果这些变量中的任何一个为空,我想运行一个语句。我知道我可以运行一个if语句来检查它们是否为空但是有一种更简单的方法,或者是一个可以用更少的代码来完成它的函数吗?

我可以这样做:

if($title == '' || $keywords == '' || etc etc...

但是有没有一种方法可以用更少的代码来完成它?这看起来有点笨拙。

谢谢!

2 个答案:

答案 0 :(得分:2)

为了解决这个问题,我通常使用这个解决方案。

$keys = array('title','keywords','any_other_key');
$isError = false;
$data = array();
foreach($keys as $key) {
    if (!isset($_POST[$key]) || $_POST[$key] == '') { 
        $isError = $key;
        break;
    } else {
        $data[$key] = strip_tags($_POST[$key]);
    }
}

if ($isError !== false) {
    // Error. Some fields are not filled!
    // Error field are in $isError variable;
}

答案 1 :(得分:1)

$vars=array('title','keywords','purpose','special','length','email');

$allfilled=true;
foreach ($vars as $var) {
  $$var=$_POST[$var];
  if ($$var == '') $allfilled=false;
}

if (!$allfilled) ...