0

これは、テキスト フィールドのパスワード入力用です。これが私のコードです:

$vaarそのフィールドに入力されるものです。

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

正しい構文がわかりません。私は試しまし||or、、xor。また、自分のに'pass01'とを配置してみました。'pass02'( )

私がやりたいことはこれです:

そう$vaarでない場合、'pass01'または空でない場合は、次のようにします。'pass02'$vaar

単なる構文エラーですが、わかりません!

4

2 に答える 2

4

あなたが探しています:

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

チェックを最初に置いたことに注意してempty()ください。これにより、評価が$vaar実際には空になるはずです。

編集: OP の文言 (および論理) をより適切に反映するために、これはDemorgan の法則により、以下と同じです。):

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

読み取り:が空ではなく、そうでない場合、または$vaar$vaarpass01pass02

于 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言語構造を条件の先頭に移動しました。変数が空の場合、条件はすぐに false を評価し、変数が未定義の場合のE_NOTICEエラーを防ぎます。Undefined variable $vaar

于 2013-07-11T19:25:56.377 に答える