OR运算符无效的IF语句

时间:2014-05-01 10:15:58

标签: php if-statement or-operator

if($action == "send"){
$_POST['name'] =        $name ;
$_POST['email'] =       $email ;
$_POST['phone'] =       $phone  ;


  if(!empty($name) || !empty($email) || !empty($phone)){

  .....
 } else {

  $msg = 'All fields required';

}

//无论我做什么只显示$ msg。

//已经尝试过了

  if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_POST['phone'])){
  ....
   }

我试图做的是一个向我发送数据的表单,我想要填写所有字段,所以也许我用错误的方式编写if语句。 对不起,如果我之前没有解释清楚。

3 个答案:

答案 0 :(得分:1)

您的代码为:

  

如果名称不为空,或者电子邮件不为空,或者电话不为空

这意味着只要中至少有一个非空,那么你就是好人!

很确定这不是你的意思。你想要:

  

如果名称不为空,并且电子邮件不为空,并且电话不为空

使用&&代替||,它应该可以正常工作!

答案 1 :(得分:1)

我认为你对这里涉及的所有负面因素感到困惑。我怀疑你所追求的是:

if (!(empty($name) || empty($email) || empty($phone))) {
    ...
} else {
    $msg = 'All fields required';
}

哪个(在我看来)写得更好:

if (empty($name) || empty($email) || empty($phone)) {
    $msg = 'All fields required';
} else {
    ...
}

答案 2 :(得分:0)

if($name=='' || $email=='' || $phone=='')
{
    $msg='All fields required';
}
else 
{
    ..............
}