如果条件和空变量

时间:2014-01-20 04:52:13

标签: php variables if-statement boolean

我有这段代码:

If(!isset($a) || empty($a))
{
    // code to run when $a not set or empty;
}
Elseif ($a==0)
{
     //code to run when $a is equal 0
}
Else
{
      //code to run in all other scenarios
}

问题是,当$ a等于0时,空($ a)为真且第一个代码运行。我需要第二个运行。我该怎么做?

5 个答案:

答案 0 :(得分:2)

if (isset($a) && $a == 0)
    {
    //code to run when $a is equal 0
    }
elseif (empty($a))
    {
    // code to run when $a not set or empty;
    }
else
    {
    //code to run in all other scenarios
    }

答案 1 :(得分:0)

替换它并尝试

If(!isset($a) || $a=='') 
{
// code to run when $a not set or empty;
}
Elseif ($a==0)
{
     //code to run when $a is equal 0
}
Else
{
      //code to run in all other scenarios
}

答案 2 :(得分:0)

试试这个:

if((!isset($a) || empty($a)) && $a !== 0)
{
    // code runs when $a not set or empty and $a is not 0;
}
elseif ($a === 0)
{
     //code runs when $a is equal 0
}
else
{
      //code runs in all other scenarios
}

<强>更新 更改为类型安全比较。

答案 3 :(得分:0)

我找到了解决方案:

if (!isset($a) || (empty($a) && $a!==0))
{
    //run code if $a is not set or is empty
}
elseif ($a===0)
{
    //run code if $a is 0;
}
else
{
    //all other scenarios
}

答案 4 :(得分:-1)

当0(0为整数)时,Empty函数返回false。

所以你的代码应该是

If(!isset($a))
{
    // code to run when $a not set or empty;
}
Elseif ($a==0)
{
     //code to run when $a is equal 0
}
Else
{
      //code to run in all other scenarios
}