Is complexe logica mogelijk in PHP? PHP: Logische operatoren - Handleiding. Vergelijkingsoperaties en de leugenregel

De les behandelt voorwaardelijke php-operatoren: de if-instructie en de switch-instructie

Voorwaardelijke PHP-instructies worden weergegeven door drie hoofdconstructies:

  • conditie operator als,
  • schakel operator schakelaar
  • En ternaire operator.

Laten we ze allemaal eens nader bekijken.

PHP if-instructie

Figuur 3.1. Voorwaardelijke IF-instructie, korte versie


Rijst. 3.2. IF ELSE Syntaxis van voorwaardelijke instructies


Rijst. 3.3. Volledige syntaxis van de voorwaardelijke instructie IF elseif

Laten we het samenvatten:

Volledige syntaxis:

if (voorwaarde) ( // als de voorwaarde waar is operator1; operator2; ) elseif(voorwaarde) ( operator1; ... ) else ( // als de voorwaarde onwaar is operator1; operator2; )

  • De verkorte syntaxis kan bevatten geen delen van de else-clausule en bevatten geen aanvullende elseif-voorwaarde
  • In plaats van het functiewoord elseif kun je else if (afzonderlijk) schrijven
  • Er kunnen meerdere elseifs in één if-construct zijn. De eerste elseif-expressie gelijk aan TRUE wordt uitgevoerd.
  • Als er een alternatieve elseif-voorwaarde is, moet de else-clausule als laatste in de syntaxis komen.

Een voorwaardelijke verklaring kan een dubbele punt gebruiken: in plaats van accolades. In dit geval eindigt de instructie met het hulpwoord endif

Rijst. 3.4. Voorwaardelijke verklaring If en Endif in php

Voorbeeld:

if($x > $y): echo $x." is groter dan ".$y; elseif($x == $y): // bij gebruik van : kunt u niet afzonderlijk else schrijven als echo $x." gelijk is aan ".$y; anders: echo $x." niet > en niet = ".$y; eindals;

Belangrijk: Als u in een constructie een dubbele punt gebruikt in plaats van accolades, kan elseif niet in twee woorden worden geschreven!

Logische bewerkingen in een voorwaarde

De if-voorwaarde tussen haakjes kan de volgende bewerkingen bevatten:

Voorbeeld: controleer de waarde van een numerieke variabele: als deze kleiner is dan of gelijk is aan 10, wordt er een bericht weergegeven "een getal kleiner dan of gelijk aan 10", anders wordt er een bericht weergegeven "een getal groter dan 10"


Oplossing:

$getal=15;<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

if ($getal

Voorbeeld: PHP-codeblokken kunnen worden verbroken, laten we naar een voorbeeld kijken: HTML-code op het scherm weergeven"een is gelijk aan 4"


, als de variabele $a werkelijk gelijk is aan 4
1 2 3 4

1 oplossing:

1 2 3 2 Oplossing:

A is gelijk aan 4

A is gelijk aan 4 php-taak 3_1:


Geef de vertaling van kleuren weer van het Engels naar het Russisch, waarbij u de waarde van de variabele controleert (waaraan de kleur is toegewezen: $a = "blauw") php-taak 3_2:

Zoek het maximum van drie getallen

Het if-construct tussen haakjes moet een logische expressie of variabele bevatten, die wordt beschouwd vanuit het oogpunt van de algebra van de logica, en de waarden waar of onwaar retourneert

Die. een enkele variabele kan als voorwaarde fungeren. Laten we eens kijken naar een voorbeeld:

1 2 3 4 $een = 1;

als ($a) ( echo $a; )

$a=1;

als ($a) ( echo $a; )

  • In het voorbeeld beschouwt de PHP-taalvertaler de variabele tussen haakjes als een leugenregel: Regel van LIE of wat als vals wordt beschouwd:
  • logisch 0 )
  • Vals 0.0 )
  • hele nul ( echte nul ( «0»
  • lege tekenreeks
  • en touwtje
  • array zonder elementen object zonder variabelen

speciaal soort

NUL In het beschouwde voorbeeld is de variabele $a dus gelijk aan één, dienovereenkomstig zal de voorwaarde waar zijn en zal de operator echo $a; toont de waarde van de variabele. php-taak 3_3: er wordt een variabele a met een stringwaarde gegeven. Als a gelijk is aan de naam, druk dan af "Hallo, naam!"

, als a gelijk is aan een lege waarde, voer dan uit

  1. "Hallo vreemdeling!" Logische constructies AND OR en NOT in de voorwaardelijke operator — && :
  2. Soms is het nodig om tegelijkertijd aan meerdere voorwaarden te voldoen. Vervolgens worden de voorwaarden gecombineerd

  3. logische operator AND $a=1; if ($a>0 || $a>1) ( echo "a > 0 of a > 1"; ) — ! :
  4. 1 2 3 4 Gebruik om aan te geven of een voorwaarde onwaar is< 0 ) ) { echo "a не < 0" ; }

    logische operator NOT<0)) { echo "a не < 0"; }

$een = 1;

als (! ($a $a=1; als (!($a.

Schakel operator PHP

1 2 3 4 5 6 7 8 9 10 De switchoperator of “switch” vervangt meerdere opeenvolgende if-constructies. Daarbij vergelijkt het één variabele met meerdere waarden. Dit is dus de handigste manier

voor het organiseren van meerdere vestigingen

  • Syntaxis:
  • switch ($variabele) ( case "waarde1": operator1; break; case "waarde2": operator2; break; case "waarde3": operator3; break; [standaard: operator4; break; ])

switch($variable)( case "waarde1": operator1; break; case "value2": operator2; break; case "value3": operator3; break; )


Voorbeeld: De operator kan zowel stringwaarden (dan worden ze tussen aanhalingstekens gespecificeerd) als numerieke waarden (zonder aanhalingstekens) controleren.


Oplossing:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $names = array ("Ivan" , "Peter" , "Semyon" ); switch ($names [ 0 ] ) ( case "Peter": echo "Hallo, Petya!"; break; case "Ivan": echo "Hallo, Vanya!"; break; case "Semyon": echo "Hallo, Vanya! "; break; standaard: echo "Hallo,$namen!"

;

pauze ; )

  • $names=array("Ivan", "Peter", "Semyon"); switch($names)( case "Peter": echo "Hallo, Petya!"; break; case "Ivan": echo "Hallo, Vanya!"; break; case "Semyon": echo "Hallo, Vanya!"; break ; standaard: echo "Hallo, $names!";
  • php-taak 3_4: Maak een $day-variabele en wijs deze een willekeurige numerieke waarde toe Gebruik de schakelconstructie om de zin af te drukken
  • "Het is een werkdag" , als de waarde van de variabele $day binnen het bereik van getallen van 1 tot en met 5 valt Druk de zin af
  • "Het is een werkdag" "Het is een vrije dag", als de waarde van de variabele $day gelijk is aan de getallen 6 of 7

"Onbekende dag"

1 2 3 4 5 6 7 8 9 10 11 12 , als de waarde van de variabele $day niet binnen het bereik van getallen van 1 tot en met 7 valt Vul de code in:... schakelaar (... ) ( geval 1: geval 2: ... echo

"Het is een werkdag"

;

pauze ; geval 6: ... standaard: ...) Switch(...)( case 1: case 2: ... echo "Dit is een werkdag"; break; case 6: ... standaard: ... )

PHP ternaire operator

Ternaire operator

, d.w.z. met drie operanden, heeft een vrij eenvoudige syntaxis waarin links van de ? de voorwaarde is geschreven en aan de rechterkant staan ​​twee operatoren gescheiden door het teken: , links van het teken wordt de operator uitgevoerd als de voorwaarde waar is, en rechts van het teken: de operator wordt uitgevoerd als de voorwaarde waar is vals.

De logische OR-operator wordt aangeduid als OR of || . Het voert een logische OR-bewerking uit op twee operanden. Als een of beide operanden waar zijn, retourneert het waar. Als beide operanden onwaar zijn, retourneert het onwaar. Je hebt waarschijnlijk een vraag: waarom hebben ze twee versies van één operator gemaakt? Het punt van de twee verschillende varianten van de logische OR-operator is dat ze met verschillende prioriteiten werken.

Laten we eerst eens kijken hoe de operator ||. . En dus, als een of beide operanden waar zijn, retourneert het true . Als beide operanden valse waarden retourneren, wordt false geretourneerd.

De OR-operator werkt hetzelfde als de ||-operator. op één uitzondering na: als de OR-operator wordt gebruikt bij een toewijzing, zal deze eerst de waarde van de linker operand evalueren en retourneren, anders werkt deze precies hetzelfde als de ||-operator. , d.w.z. als een of beide operanden waar zijn, retourneert het waar. Als beide operanden false retourneren, wordt false geretourneerd.

Om duidelijker te maken hoe ze werken, geven we het volgende voorbeeld:

1 // Eerst wordt aan de variabele de waarde false toegekend en vervolgens wordt de tweede operand geëvalueerd // Prioritaire actie: ($var2 = false) of true $var2 = false of true;
echo $var2; // false wordt niet afgedrukt // ($var3 = 0) of 3 $var3 = 0 of 3;

echo "

$var3"; // => 0 ?>

Elke vergelijking en logische operatoren kunnen worden gecombineerd tot complexere structuren:

Er is nog een belangrijk punt dat het vermelden waard is met betrekking tot zowel de OR- als de ||-operator. . De logische OR-operator begint zijn evaluatie met zijn linkeroperand; als deze waar retourneert, wordt de rechteroperand niet geëvalueerd. Dit bespaart uitvoeringstijd, maar er moet voor worden gezorgd dat code waarvan de correcte werking van het programma afhankelijk kan zijn, niet in de rechter operand wordt geplaatst.

Logische EN (EN en &&)

De AND-operator werkt hetzelfde als de &&-operator met één uitzondering. Als de AND-operator wordt gebruikt bij een toewijzing, zal deze eerst de waarde van de linker operand evalueren en retourneren, anders werkt deze precies hetzelfde als de &&-operator. Als ten minste één van de operanden false retourneert, zal deze ook false retourneren, en als beide operanden false retourneren, zal deze false retourneren.

Laten we, om dit te begrijpen, nu eens kijken hoe dit in de praktijk werkt:

$bar3"; // => 9 ?>

Exclusief OF (XOR)

De exclusieve OR-operator wordt aangeduid als XOR. Het retourneert waar als één en slechts één van de operanden waar is. Als beide operanden waar zijn, retourneert de operator false.

Omdat de XOR-operator dezelfde prioriteit heeft als de AND- en OR-operatoren (lager dan de toewijzingsoperator) en wordt gebruikt in een toewijzingsexpressie, wordt eerst de waarde van de linkeroperand geëvalueerd en geretourneerd.

6 $a1 = 19 xof 5 > 6;< 3) xor (5 != 5)); // true ?>

var_dump($a1); // => 19 var_dump(waar xof waar); // valse var_dump((2

Logisch NIET (!)

De logische NOT-operator, ook wel ontkenning genoemd, wordt aangegeven door het teken! . Het is een unaire operator die vóór een enkele operand wordt geplaatst. De logische NOT-operator wordt gebruikt om de logische waarde van zijn operand om te keren en retourneert altijd true of false.

Als u de waarde van een uitdrukking, zoals a && b , moet omkeren, moet u haakjes gebruiken: !(a && b) . Ook met behulp van een operator! U kunt elke x-waarde naar het Booleaanse equivalent converteren door de operator: !!x tweemaal te gebruiken.

De twee belangrijkste uitspraken die voorwaardelijke vertakkingsstructuren bieden, zijn if en switch. De meest gebruikte if-instructie wordt gebruikt in voorwaardelijke sprongstructuren. Aan de andere kant wordt in bepaalde situaties, vooral als je door een van de vele vertakkingen moet navigeren, afhankelijk van de waarde van een enkele expressie, en het gebruik van een aantal if-statements tot complexere code leidt, de switch-instructie handiger. .

Voordat u deze operatoren bestudeert, moet u logische expressies en bewerkingen begrijpen.

Logische bewerkingen

Met logische bewerkingen kunt u logische waarden (ook wel waarheidswaarden genoemd) combineren om nieuwe logische waarden te produceren. Zoals je in de onderstaande tabel kunt zien, ondersteunt PHP standaard logische operatoren (and, or, not, en xor), waarbij de eerste twee alternatieve versies hebben.
PHP logische bewerkingen Operatie
En Een bewerking waarvan het resultaat waar is dan en slechts dan als beide operanden waar zijn
of Een bewerking waarvan het resultaat waar is als een van de operanden (of beide operanden) waar is
! Een bewerking waarvan het resultaat waar is als de enige operand (die rechts van het bewerkingsteken staat) onwaar is, en onwaar als de operand waar is
xor Een bewerking waarvan het resultaat waar is als een van de operanden (maar niet beide) waar is
&& Hetzelfde als de operator en, maar bindt de operanden strakker dan deze operator
|| Hetzelfde als de operator of, maar bindt de operanden strakker dan deze operator

Bewerkingen && en || zou bekend moeten zijn bij C-programmeurs. wordt meestal niet genoemd omdat het de negatie wordt van de operand waarop het wordt toegepast.

Om te testen of beide operanden TRUE zijn, gebruik je de AND-operator, die ook kan worden geschreven als een dubbel ampersand (&&). Zowel de AND- als de &&-operator zijn logische operatoren. Het enige verschil is dat de &&-operator een hogere prioriteit heeft dan de AND-operator. Hetzelfde geldt voor de operatoren OR en ||. De AND-operator retourneert alleen WAAR als beide operanden WAAR zijn; anders wordt FALSE geretourneerd.

Om te controleren of ten minste één operand TRUE is, gebruik je de OR-operator, die ook kan worden geschreven als een dubbele verticale lijn (||). Deze operator retourneert WAAR als ten minste één van zijn operanden WAAR is.

Wanneer u de OR-operator in een programma gebruikt, kunnen subtiele logische fouten optreden. Als PHP detecteert dat de eerste operand TRUE is, zal het de waarde van de tweede operand niet evalueren. Dit bespaart uitvoeringstijd, maar u moet er wel voor zorgen dat de code waarvan het programma afhankelijk is om correct te kunnen werken, niet in de tweede operand wordt geplaatst.

Met de XOR-operator kunt u controleren of slechts één van de operanden (maar niet beide) TRUE is. Deze operator retourneert WAAR als één en slechts één van zijn operanden WAAR is. Als beide operanden TRUE zijn, retourneert de operator FALSE.

U kunt een logische waarde omkeren met behulp van de NOT-operator, die vaak wordt geschreven als een uitroepteken (!). Het retourneert TRUE als de operand FALSE is en FALSE als de operand TRUE is.

De onderstaande tabel toont enkele Booleaanse expressies en hun resultaten:

Vergelijkingsoperaties

De onderstaande tabel toont vergelijkingsbewerkingen die kunnen worden gebruikt met getallen of tekenreeksen:

Vergelijkingsoperaties
PHP logische bewerkingen Naam Operatie
== Gelijk aan Een bewerking waarvan het resultaat waar is als de operanden gelijk zijn en anders onwaar
!= Niet gelijk Een bewerking waarvan het resultaat onwaar is als de operanden gelijk zijn en anders waar
< Minder Een bewerking waarvan het resultaat waar is als de linker operand kleiner is dan de rechter operand, en anders onwaar
> Meer Een bewerking waarvan het resultaat waar is als de linker operand groter is dan de rechter operand, en anders onwaar
<= Kleiner dan of gelijk aan Een bewerking waarvan het resultaat waar is als de linker operand kleiner is dan of gelijk is aan de rechter operand, en anders onwaar
>= Groter dan of gelijk aan Een bewerking waarvan het resultaat waar is als de linker operand groter is dan of gelijk is aan de rechter operand, en anders onwaar
=== Identiek Een bewerking waarvan het resultaat waar is als beide operanden gelijk zijn en van hetzelfde type zijn, en anders onwaar

Een veel voorkomende fout die u moet maken, is de toewijzingsoperator (=) niet te verwarren met de vergelijkingsoperator (==).

Operatieprioriteit

Natuurlijk moet men niet te veel gebruik maken van een programmeerstijl waarin de volgorde van de bewerkingen voornamelijk wordt bepaald door het gebruik van voorrangsregels, aangezien code die in deze stijl is geschreven moeilijk te begrijpen is voor degenen die deze later bestuderen, maar er moet worden opgemerkt dat vergelijking bewerkingen hebben een hogere prioriteit dan logische bewerkingen. Dit betekent dat een instructie met een controle-expressie zoals hieronder wordt weergegeven

PHP-code $var1 = 14; $var2 = 15; als (($var1< $var2) && ($var2 < 20)) echo "$var2 больше $var1 но меньше 20";

kan worden herschreven als

PHP-code ...als ($var1< $var2 && $var2 < 20) ...

if-else verklaring

Instructies als staat toe dat een codeblok wordt uitgevoerd als de voorwaardelijke expressie in deze instructie WAAR oplevert; anders wordt het codeblok niet uitgevoerd. Elke expressie kan als voorwaarde worden gebruikt, inclusief tests voor waarden die niet nul zijn, gelijkheid, NULL waarbij variabelen betrokken zijn en waarden die door functies worden geretourneerd.

Het maakt niet uit uit welke individuele voorwaardelijke straffen de voorwaardelijke straf bestaat. Als de voorwaarde waar is, wordt de programmacode tussen accolades (()) uitgevoerd. Anders negeert PHP het en gaat verder met het controleren van de tweede voorwaarde, waarbij alle voorwaardelijke waarden die je hebt opgeschreven worden gecontroleerd totdat de instructie wordt gevonden anders, waarna het dit blok automatisch zal uitvoeren. De else-instructie is optioneel.

De syntaxis van de if-instructie is:

If (voorwaardelijke expressie) (blok programmacode;)

Als het resultaat van het evalueren van een voorwaardelijke expressie TRUE is, zal het blok programmacode dat zich erna bevindt, worden uitgevoerd. In het volgende voorbeeld, als $username is ingesteld op "Admin", wordt een welkomstbericht weergegeven. Anders gebeurt er niets:

PHP-code $gebruikersnaam = "Beheerder"; if ($gebruikersnaam == "Beheerder") ( echo "Welkom op de beheerderspagina."; )

Als een blok programmacode slechts één instructie bevat, zijn accolades optioneel. Het is echter een goede gewoonte om ze altijd te gebruiken, omdat ze de code gemakkelijker lezen en bewerken maken.

De optionele else-instructie is een codeblok dat standaard wordt uitgevoerd wanneer de voorwaardelijke expressie FALSE oplevert. De else-instructie kan niet afzonderlijk van de if-instructie worden gebruikt, omdat else geen eigen voorwaardelijke expressie heeft. Dat wil zeggen, else en if moeten altijd samen zijn in uw code:

if en else-verklaringen $gebruikersnaam = "geen beheerder"; if ($gebruikersnaam == "Admin") ( echo "Welkom op de beheerderspagina."; ) else ( echo "Welkom op de gebruikerspagina."; )

Vergeet niet om een ​​codeblok in een if-instructie af te sluiten met een accolade als u een accolade aan het begin van het blok plaatst. Het else-blok moet ook accolades openen en sluiten, net als het if-blok.

Dit is allemaal goed, behalve als je meerdere voorwaarden achter elkaar moet controleren. Instructies zijn hiervoor geschikt andersals. Hiermee kunnen aanvullende voorwaarden worden getest totdat true wordt gevonden of het else-blok wordt bereikt. Voor elke elseif-instructie is een eigen codeblok geplaatst, onmiddellijk na de voorwaardelijke expressie van de elseif-instructie. De elseif-instructie komt na de if-instructie en vóór de else-instructie, als die er is.

De syntaxis van de elseif-instructie is iets ingewikkelder, maar het volgende voorbeeld zal u helpen deze te begrijpen:

Meerdere voorwaarden controleren $gebruikersnaam = "Gast"; if ($gebruikersnaam == "Beheerder") ( echo "Welkom op de beheerderspagina."; ) elseif ($gebruikersnaam == "Gast") ( echo "Bekijken niet beschikbaar."; ) else ( echo "Welkom op de pagina gebruiker."; )

Hier worden twee voorwaarden gecontroleerd en worden, afhankelijk van de waarde van de variabele $username, verschillende acties uitgevoerd. En er is nog steeds een mogelijkheid om iets te doen als de waarde van de variabele verschilt van de eerste twee.

Ternaire operator?:

De ?: operator is een ternaire (ternaire) operator die drie operanden nodig heeft. Het werkt vergelijkbaar met een if-instructie, maar retourneert de waarde van een van de twee expressies. De expressie die wordt geëvalueerd, wordt bepaald door de voorwaardelijke expressie. De dubbele punt (:) dient als expressiescheidingsteken:

(voorwaarde) ? evalueren_if_condition_true: evalueren_if_condition_false;

In het onderstaande voorbeeld wordt een waarde gecontroleerd en worden verschillende tekenreeksen geretourneerd, afhankelijk van of deze WAAR of ONWAAR is:

Een bericht maken met de operator ? $ingelogd_in = WAAR; $gebruiker = "Igor"; $banner = (!$ingelogd_in) ? "Register!" : "Welkom terug, $user!"; echo $banner;

Het is overduidelijk dat de bovenstaande verklaring equivalent is aan de volgende verklaring:

PHP-code $ingelogd_in = WAAR; $gebruiker = "Igor"; if (!$logged_in) ( $banner = "Registreer!"; ) else ( $banner = "Welkom terug, $user!"; ) echo $banner;

schakel verklaring

Instructies schakelaar vergelijkt een expressie met meerdere waarden. In de regel wordt een variabele als expressie gebruikt, afhankelijk van de waarde waarvan een bepaald codeblok moet worden uitgevoerd. Stel je bijvoorbeeld een variabele $action voor die de waarden "ADD", "MODIFY" (wijzigen) en "DELETE" kan hebben. Met de switch-instructie kunt u eenvoudig het codeblok definiëren dat voor elk van deze waarden moet worden uitgevoerd.

Om het verschil tussen if- en switch-instructies te laten zien, gaan we een variabele testen aan de hand van meerdere waarden. Het onderstaande voorbeeld toont programmacode die een dergelijke controle implementeert op basis van de if-instructie, en in het volgende voorbeeld op basis van de switch-instructie:

Testen tegen een van meerdere waarden (if-statement) if ($action == "ADD") ( echo "Voer een optelling uit."; echo "Het aantal instructies in elk blok is onbeperkt."; ) elseif ($action == "MODIFY") ( echo "Voer een wijziging uit ."; ) elseif ($action == "DELETE") ( echo "Voer verwijdering uit."; ) Testen tegen een van meerdere waarden (switch-instructie) switch ($action) ( case "ADD": echo "Voer een optelling uit."; echo "Het aantal instructies in elk blok is onbeperkt."; break; case "MODIFY": echo "Voer een wijziging uit."; break; case "DELETE" : echo "Voer verwijdering uit.";

De switch-instructie neemt de waarde naast het switch-trefwoord en begint deze te vergelijken met alle waarden naast de trefwoorden geval, in de volgorde van hun locatie in het programma. Als er geen match wordt gevonden, wordt geen van de blokken uitgevoerd. Zodra er een match is gevonden, wordt het bijbehorende codeblok uitgevoerd. De onderstaande codeblokken worden ook uitgevoerd - tot het einde van de switch-instructie of tot het trefwoord pauze. Dit is handig voor het organiseren van een proces dat uit meerdere opeenvolgende stappen bestaat. Als de gebruiker al enkele stappen heeft voltooid, kan hij het proces voortzetten vanaf het punt waar hij was gebleven.

De expressie naast de switch-instructie moet een waarde van een primitief type retourneren, zoals een getal of tekenreeks. Een array kan alleen worden gebruikt als een afzonderlijk element dat een waarde van een elementair type heeft.

Standaardselectie

Als de waarde van de voorwaardelijke expressie niet overeenkomt met een van de opties die in de case-instructies worden voorgesteld, kunt u met de switch-instructie in dit geval iets doen, vergelijkbaar met de else-instructie van de if, elseif, else-constructie. Hiervoor dient u als laatste optie in de keuzelijst een instructie aan te maken standaard:

Een foutmelding maken met behulp van de standaardinstructie $actie = "VERWIJDEREN"; switch ($action) ( case "ADD": echo "Voer een optelling uit."; echo "Het aantal instructies in elk blok is onbeperkt."; break; case "MODIFY": echo "Voer een wijziging uit."; break; case "DELETE": echo "Voer verwijdering uit."; standaard: echo "Fout: $action-opdracht is niet geldig, "alleen de opdrachten ADD, MODIFY en DELETE kunnen worden gebruikt.";

Naast de gebruikelijke syntaxis ondersteunt de switch-instructie een alternatieve syntaxis: een trefwoordconstructie schakelaar/eindschakelaar, waarbij het begin en het einde van de verklaring worden gedefinieerd in plaats van accolades:

De switch-instructie eindigt met het trefwoord endswitch switch ($action): case "ADD": echo "Voer toevoegen uit.";

echo "Het aantal instructies in elk blok is onbeperkt.";

pauze; case "MODIFY": echo "Wijziging uitvoeren.";

pauze; case "DELETE": echo "Voer verwijdering uit."; pauze; standaard: echo "Fout: $action-opdracht is niet geldig, ".
"Alleen de opdrachten ADD, MODIFY en DELETE kunnen worden gebruikt."; eindschakelaar;
Uitvoering onderbreken
"; }

Als alleen een codeblok dat overeenkomt met een specifieke waarde moet worden uitgevoerd, moet het sleutelwoord break aan het einde van dat blok worden ingevoegd. Wanneer de PHP-interpreter het break-trefwoord tegenkomt, zal hij doorgaan met het uitvoeren van de regel na de afsluitende accolade van de switch-instructie (of het endswitch-trefwoord). Maar als u de break-instructie niet gebruikt, gaat de controle door in de daaropvolgende case-takken van de switch-constructie. Hieronder ziet u een voorbeeld:

Wat gebeurt er als er geen break-instructies zijn

$action="MONTEER BESTELLING"; switch ($action) ( case "MONTEER BESTELLING": echo "Monteer bestelling.

"; case "PAKKET": echo "Pack.

"; case "SHIP": echo "Leveren aan de klant.

Als de variabele $action is ingesteld op "ASSEMBLE ORDER", is het resultaat van dit fragment als volgt:

Verzamel de bestelling. Pak. Leveren bij de klant.

Ervan uitgaande dat de bouwfase al is voltooid en de variabele $action is ingesteld op "PACKAGE", wordt het volgende resultaat verkregen:

Pak. Leveren bij de klant.<= 10) echo "Это число находится между 5 и 10"; ?>

Soms is het nuttig om geen break-instructie te hebben, zoals in het bovenstaande voorbeeld, waar de volgordefasen worden gevormd, maar in de meeste gevallen zou deze instructie moeten worden gebruikt. Gegevenstypen Cycli 1 2 3 4 5 6 7 8 9 10 We weten dus al hoe we code moeten uitvoeren die aan een bepaalde voorwaarde voldoet. Maar tot nu toe kon er maar één voorwaarde zijn. Wat als de code moet worden uitgevoerd als aan meerdere voorwaarden tegelijk wordt voldaan?

Om dit probleem op te lossen, zijn er logische operatoren:

= 5 && $prijs De &&-operator, ook wel genoemd logisch EN

, converteert de waarden links en rechts naar een Booleaans type, en retourneert vervolgens zelf een Booleaanse waarde: waar als links en rechts waar zijn, of onwaar als een van de voorwaarden onwaar is.

Met andere woorden: als beide voorwaarden waar zijn, retourneert de operator && waar. Dit is wat de naam van de operator weerspiegelt.

Exploitant ||

Tussen de operatoren && en en, en ook tussen ||

en of er is een klein verschil: de volgorde van uitvoering.

Zoals je weet heeft vermenigvuldigen een hogere prioriteit dan optellen. De operators en en of hebben dus een lagere prioriteit dan de toewijzingsoperator =. Het resultaat is te zien in het volgende voorbeeld:

Vreemd, toch? Omdat y = een hogere prioriteit heeft, zal PHP de code als volgt interpreteren:

($var = waar) en onwaar;

Die. eerst wordt $var ingesteld op true en vervolgens wordt een true- en false-bewerking uitgevoerd, wat zinloos is omdat het de waarde van de variabele niet beïnvloedt.

  • Hieronder vindt u een tabel met de prioriteiten van de operator. Een aantal van hen heb je al ontmoet. Hoe hoger de operator in de tabel staat, hoe hoger zijn prioriteit.
  • * / %
  • + - .
  • < <= > >=
  • == != === !== <> <=>
  • ++ -- ~ (int) (zwevend) (tekenreeks) (array) (object) (bool) @
  • = += -= *= **= /= .= %= &= |= ^= <<= >>=

? : (ternaire operator)

Nu kunnen we vaststellen dat de prioriteit van vergelijkingsoperatoren (==, !=, enz.) hoger is dan die van logische operatoren. Deze informatie zal nuttig voor ons zijn om de taak te voltooien. PHP ondersteunt de volgende standaard logische operatoren

: "AND" en "&&" (logisch AND), "OR" en "||"

(logische OR), "!"

(logische NOT) en "XOR" (exclusieve OR). Ze worden allemaal gebruikt in logische expressies om een ​​of ander verloop van de programma-uitvoering te bepalen, afhankelijk van het resultaat dat door de expressie wordt geretourneerd, en hebben betrekking op binaire operatoren, met uitzondering van de operator "!" , wat unair is. Bij gebruik van logische operatoren worden hun operanden geconverteerd naar het Booleaanse gegevenstype (), en het resultaat hangt af van de gegeven logische waarden van de operanden en het type logische operator (zie tabel nr. 1).

Het gebruik van logische operatoren wordt getoond in voorbeeld nr. 2.

onwaar $a=0||onwaar; //Nu $a==waar, omdat 5->true en 8->true $a=5& //Nu $a==false, omdat "0"->false $a="0"& //Nu $a==true $a=!false; //Nu $a==false, omdat 5->waar $a=!5; /* Functie foo() wordt niet aangeroepen vanwege shunts */ $a=(false&&foo()); $b=(waar||foo()); $c=(false en foo()); $d=(waar of foo()); /* Verschil "||" van "of" en "&&" van "en" */ //Gedraagt ​​zich als ($a=(false||true)) $a=false||true; //Gedraagt ​​zich als (($a=false) of waar) $a=false of waar; //Gedraagt ​​zich als ($a=(false&&true)) $a=false& //Gedraagt ​​zich als (($a=false) en true) $a=false en true; //Nu werkt $a==5 als (($a=5) xor 0) $a=5 xor 0; //Nu werkt $a==5 als (($a=5) en 0) $a=5 en 0; //Nu werkt $a==5 als (($a=5) of 0) $a=5 of 0; //Nu $a==true, gedraagt ​​het zich als ($a=(5||0)) $a=5||0; //Nu $a==false, gedraagt ​​zich als ($a=(5&&0)) $a=5& //Nu $a==true, gedraagt ​​zich als ($a=(5 xor 6)) $a=(5 xor 6); ?>

Voorbeeld nr. 2.