/ / Vykonajte kód, iba ak nie sú splnené určité podmienky - php, logic

Spustiť kód len vtedy, ak niektoré podmienky NIE sú pravdivé - php, logika

V PHP, ako môžem nie spustiť prichádzajúci kód (nezobrazuje sa napríklad v div), ak sú splnené tri podmienky, a na druhej strane ho vykonajte, ak a iba ak je niektorá z týchto 3 podmienok nepravdivá?

Napríklad opak toho, čo chcem urobiť, je, aby robiť spustiť kód, ak sú tieto tri podmienky skutočne splnené, urobím niečo také:

<?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; ?>

Výsledok: Nie všetky tri sú pravdivé, takže kód nebude vykonaný.

Dúfam, že som pochopil, Vopred ďakujem.

odpovede:

1 pre odpoveď č. 1
if (!($x=="x" && $y=="y" && $z=="z")){
// do if matches
}else {
//do otherwise
}

Stačí dať! znamenie ako keby (! ())


1 pre odpoveď č. 2

Môžete použiť zákony spoločnosti DeMorgan na prevrátenie pravdy vášho celku if doložka:

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

Alebo to môžete urobiť pomocou ! operátor, ktorý je úplne logicky ekvivalentný:

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

Alebo môžete prevrátiť kontrolované hodnoty, čo je tiež logicky ekvivalentné:

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

Všetky tieto budú fungovať rovnakým spôsobom. Ak ich dôkladne preštudujete, môžete tiež pochopiť, PREČO všetci fungujú rovnako, čo vám pomôže navrhnúť tieto doložky v budúcnosti!


1 pre odpoveď č. 3

Najjednoduchšie by bolo použitie ! (nie) prevádzkovateľ:

<?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; ?>

alebo alternatívne "otvoriť" ! (nie) prevádzkovateľ:

<?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; ?>

0 pre odpoveď č. 4

Je tu a != prevádzkovateľ, ktorý je opakom == operátor vráti nepravdivé, ak tieto dve veci nie sú rovnaké. K dispozícii je tiež ! operátor, ktorý vracia opačnú booleovskú hodnotu veci, ktorú upravuje, napr

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

vráti nepravdivé, ak obidve $var1 a $var2"true".

Navyše nemusíte otvárať a zatvárať svoje <?php ?> značka pre každý jednotlivý riadok php. V skutočnosti nerobte to preto, že by čítanie kódu bolo veľmi nepríjemné <?php kde začínate php a ?> kde skončíš.


0 pre odpoveď č. 5
<?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; ?>

0 pre odpoveď č. 6

Skúste to:

<?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; ?>