php语法 - 使用'或'和'&&'在声明中

时间:2013-07-11 19:24:08

标签: php syntax

这是用于文本字段密码输入。 这是我的代码:

$vaar是输入该字段的内容。

if(($vaar !='pass01' or 'pass02') && (!empty($vaar))) {

我无法弄清楚正确的语法。我试过了||orxor。 我还尝试将'pass01''pass02'放在他们自己的( )中。

我想要它做的是:

如果$vaar不是'pass01''pass02'$vaar不为空,请执行以下操作:

只是语法错误,但我无法弄清楚!

2 个答案:

答案 0 :(得分:4)

您正在寻找:

if( !empty($vaar) && ($vaar != 'pass01' && $vaar != 'pass02')) {

请注意,我先将empty()检查,这会使评估短路,$vaar实际上是空的。

编辑:为了更好地反映OP的措辞(和逻辑),由于Demorgan's law.),这与以下内容相同:

if( !empty($vaar) && !($vaar == 'pass01' || $vaar == 'pass02')) {

读取:如果$vaar不为空并且$vaar不是pass01pass02

答案 1 :(得分:1)

if(($vaar !== 'pass01' and $vaar !== 'pass02') and (!empty($vaar))) {
   // ...
}

可替换地:

if(($vaar !== 'pass01' && $vaar !== 'pass02') && (!empty($vaar))) {
   // ...
}

你的意思是:

如果$vaar不等于“pass01”并且$vaar不等于“pass02”并且$vaar不为空,那么......

请注意,我已将原始括号保留在那里,但由于它们都是AND,您可以删除它们,如下所示:

if(!empty($vaar) && $vaar !== 'pass01' && $vaar !== 'pass02') {
   // ...
}

在这里,我还将empty语言构造移动到条件的开头,就好像变量为空,然后条件将立即评估false,从而防止E_NOTICE错误Undefined variable $vaar 1}}如果变量未定义。