0

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

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

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

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

我想要它做的是:

如果$vaaris not'pass01''pass02'and$vaar不为空,则执行以下操作:

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

4

2 回答 2

4

您正在寻找:

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

请注意,我已将empty()检查放在首位,这将使评估$vaar实际上应该为空。

编辑:为了更好地反映 OP 的措辞(和逻辑),由于德摩根定律,这与以下内容相同。):

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

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

于 2013-07-11T19:26:17.053 回答
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语言结构移到了条件的开头,就好像变量为空一样,条件将立即评估为假,防止变量未定义时E_NOTICE出错。Undefined variable $vaar

于 2013-07-11T19:25:56.377 回答