0

PHP では、3 つの条件が true の場合に次のコード (たとえば、div に表示されない) を実行しないようにするにはどうすれよいですか?

たとえば、私がやりたいことの反対は、3 つの条件が実際に true の場合にコードを実行するために、次のようにすることです。

<?php
$var1 = 'true';
$var2 = 'true';
$var3 = 'false';
?>

<?php if ( $var1 == 'true' and $var2 == 'true' and $var3 == 'true' ) : ?>
    <?php echo 'All 3 are true, will execute code.'; ?>
<?php else : ?>
    <?php echo 'Not all 3 are true, will not execute code.'; ?>
<?php endif; ?>

結果: 3 つすべてが当てはまるわけではないため、コードは実行されません。

私が理解されたことを願っています、前もって感謝します。

4

6 に答える 6

1

ifDeMorgan の法則を使用して、節全体の真偽を逆転させることができます。

if( $var1 != true or $var2 != true or $var3 != true ){
    //execute code
}

!または、論理的に完全に同等の演算子を使用してそれを行うこともできます。

if( !( $var1 == true and $var2 == true and $var3 == true ) ){
    //execute code
}

または、チェックする値を逆にすることもできます。これも論理的に同等です。

if( $var1 == false or $var2 == false or $var3 == false ){
    //execute code
}

これらはすべて同じように機能します。それらを注意深く研究すれば、なぜそれらがすべて同じように機能するのかを理解できるかもしれません。これは、将来これらの条項を設計するのに役立ちます!

于 2012-07-12T16:31:14.853 に答える
1
if (!($x=='x' && $y=='y' && $z=='z')){
// do if matches
}else {
//do otherwise
}

! を入力するだけです。if(!()) のような記号

于 2012-07-12T16:32:02.167 に答える
1

最も簡単なのは、おそらく次のように!(not) 演算子を使用することです。

<?php if (!( $var1 == 'true' and $var2 == 'true' and $var3 == 'true' ))  ?>
    <?php echo 'Not all 3 are true, will execute code.'; ?>
<?php else : ?>
    <?php echo 'All 3 are true, will execute code.'; ?>
<?php endif; ?>

!または、代わりに(not) 演算子を「開く」 :

<?php if $var1 != 'true' or $var2 != 'true' or $var3 != 'true'   ?>
    <?php echo 'Not all 3 are true, will execute code.'; ?>
<?php else : ?>
    <?php echo 'All 3 are true, will execute code.'; ?>
<?php endif; ?>
于 2012-07-12T16:32:25.397 に答える
0
<?php
$var1 = true;  // IF these are really BOOLEAN values
$var2 = true; 
$var3 = false;
?>

<?php if ( $var1 && $var2 && $var3 ) : ?>
    <?php echo 'All 3 are true, will execute code.'; ?>
<?php else : ?>
    <?php echo 'Not all 3 are true, will not execute code.'; ?>
<?php endif; ?>
于 2012-07-12T16:34:42.667 に答える
0

これを試して:

<?php if($var1 == 'true' and $var2 == 'true' and $var3 == 'true'): ?>
   <?php echo 'All 3 are true, will execute code.'; ?>
<?php elseif($var1 != 'true' and $var2 != 'true' and $var3 != 'true'): ?>
   <?php echo 'Not all 3 are true, will not execute code.'; ?>
<?php endif; ?>
于 2012-07-12T16:40:31.010 に答える
0

!=演算子の反対の演算子があり、==2 つのものが等しくない場合は false を返します。!次のように、変更対象の反対のブール値を返す演算子もあります。

!($var1 == 'true' or $var2 == 'true')

$var1との両方$var2がである場合、 false を返します'true'

<?php ?>さらに、 php の個々の行ごとにタグを開いたり閉じたりする必要はありません。実際、コードを読むのが非常に面倒になるようなことはしないでください。<?phpPHPを開始する場所と終了する場所を実行するだけです?>

于 2012-07-12T16:30:53.163 に答える