Variabile booleene în informații generale php. Selecția implicită

Ultima actualizare: 1.11.2015

În PHP putem folosi diverși operatori: aritmetică, logică etc. Să ne uităm la fiecare tip de operație.

Operatii aritmetice

    + (operație de adăugare)

    De exemplu, $a + 5

    - (operație de scădere)

    De exemplu, $a - 5

    * (înmulțire)

    De exemplu, $a * 5

    / (Divizia)

    De exemplu, $a / 5

    % (obținerea restului de diviziune)

    De exemplu: $a=12; echo $a % 5; // este egal cu 2

    ++ (creștere/creștere valoarea cu unu)

    De exemplu, ++$a

    Este important să înțelegeți diferența dintre expresiile ++$a și $a++ . De exemplu:

    $a=12; $b=++$a; // $b este egal cu 13 echo $b;

    Aici, mai întâi, se adaugă unul la valoarea variabilei $a, iar apoi valoarea acesteia este echivalată cu variabila $b. Ar fi diferit dacă expresia ar arăta astfel: $b=$a++; . Aici, mai întâi valoarea variabilei $a a fost egală cu variabila $b, iar apoi valoarea variabilei $a a fost mărită.

    -- (scăderea/scăderea valorii cu unu)

    De exemplu, --$a . Și, de asemenea, ca și în cazul incrementului, există două tipuri de înregistrare: --$a și $a--

Operatori de atribuire

    Echivalează o variabilă cu o anumită valoare: $a = 5

    Adăugarea urmată de atribuirea rezultatului. De exemplu: $a=12; $a += 5; eco $a; // egal cu 17

    Scăderea urmată de atribuirea rezultatului. De exemplu: $a=12; $a -= 5; eco $a; // este egal cu 7

    Înmulțirea urmată de atribuirea rezultatului: $a=12; $a *= 5; eco $a; // este egal cu 60

    Împărțirea urmată de atribuirea rezultatului: $a=12; $a /= 5; eco $a; // egal cu 2,4

    Concatenați rândurile și atribuiți rezultatul. Se aplică la două linii. Dacă variabilele nu stochează șiruri, ci, de exemplu, numere, atunci valorile lor sunt convertite în șiruri și apoi se efectuează operația: $a=12; $a .= 5; eco $a; // egal cu 125 // identic cu $b="12"; $b .="5"; // egal cu 125

    Obținerea restului de împărțire și apoi atribuirea rezultatului: $a=12; $a %= 5; eco $a; // este egal cu 2

Operații de comparație

Operațiile de comparație sunt de obicei utilizate în construcțiile condiționate atunci când este necesar să se compare două valori și, în funcție de rezultatul comparației, să se efectueze anumite acțiuni. Disponibil urmatoarele operatii comparatii.

    Operatorul de egalitate compară două valori și, dacă sunt egale, returnează adevărat, în caz contrar returnează fals: $a == 5

    Operatorul de identitate compară, de asemenea, două valori și, dacă sunt egale, returnează true, în caz contrar returnează false: $a === 5

    Compară două valori și, dacă nu sunt egale, returnează adevărat, în caz contrar returnează false: $a != 5

    Compară două valori și, dacă nu sunt egale, returnează adevărat, în caz contrar returnează false: $a !== 5

    Compară două valori, iar dacă prima este mai mare decât a doua, returnează adevărat, în caz contrar returnează false: $a > 5

    Compară două valori, iar dacă prima este mai mică decât a doua, returnează adevărat, în caz contrar returnează false: $a< 5

    Compară două valori, iar dacă prima este mai mare sau egală cu a doua, returnează adevărat, în caz contrar returnează false: $a >= 5

    Compară două valori, iar dacă prima este mai mică sau egală cu a doua, returnează adevărat, în caz contrar returnează false: $a<= 5

Operator de egalitate și identitate

Ambii operatori compară două expresii și returnează adevărat dacă expresiile sunt egale. Dar există diferențe între ele. Dacă operația de egalitate ia două valori de tipuri diferite, atunci acestea sunt reduse la una - cea pe care interpretul o consideră optimă. De exemplu:

Evident, variabilele stochează valori diferite de diferite tipuri. Dar când sunt comparate, acestea vor fi reduse la același tip - numeric. Iar variabila $a va fi redusă la numărul 22. Și în final, ambele variabile vor fi egale.

Sau, de exemplu, următoarele variabile vor fi, de asemenea, egale:

$a = fals; $b = 0;

Pentru a evita astfel de situații, se folosește operația de echivalență, care ia în considerare nu numai valoarea, ci și tipul variabilei:

$a = "22a"; $b = 22; if($a===$b) echo "egal"; else ecou "nu este egal";

Acum variabilele nu vor fi egale.

Operatorii de inegalitate != și !== funcționează în mod similar.

Operații logice

Operațiile logice sunt de obicei folosite pentru a combina rezultatele a două operații de comparare. De exemplu, trebuie să efectuăm o anumită acțiune dacă mai multe condiții sunt adevărate. Sunt disponibile următoarele operații logice:

    Returnează adevărat dacă ambele comparații returnează adevărat, în caz contrar returnează false: $a == 5 && $b = 6

    Similar cu operația &&: $a == 5 și $b > 6

    Returnează adevărat dacă cel puțin o operație de comparare returnează adevărat, în caz contrar returnează false: $a == 5 || $b = 6

    Similar cu operațiunea || : $a< 5 or $b > 6

    Returnează adevărat dacă operația de comparare returnează false: !($a >= 5)

    Returnează adevărat dacă doar una dintre valori este adevărată. Dacă ambele sunt adevărate sau niciunul nu este adevărat, returnează false. De exemplu: $a=12; $b=6; if($a xor $b) echo "true"; else ecou "fals";

    Aici rezultatul operației logice va fi fals deoarece ambele variabile au o anumită valoare. Hai sa schimbam codul:

    $a=12; $b=NULL; if($a xor $b) echo "true"; else ecou "fals";

    Aici rezultatul va fi deja adevărat, deoarece valoarea unei variabile nu este setată. Dacă o variabilă are valoarea NULL, atunci în operațiile logice valoarea acesteia va fi tratată ca falsă

Operații cu biți

Operațiile cu biți sunt efectuate pe biți individuali ai unui număr. Numerele sunt considerate în reprezentare binară, de exemplu, 2 în reprezentare binară este 010, numărul 7 este 111.

    & (înmulțire logică)

    Înmulțirea se face pe biți, iar dacă ambii operanzi au valori de biți egale cu 1, atunci operația returnează 1, în caz contrar se returnează numărul 0. De exemplu: $a1 = 4; //100 $b1 = 5; //101 echo $a1 & $b1; // este egal cu 4

    Aici numărul 4 în sistemul binar este 100, iar numărul 5 este 101. Înmulțiți numerele pe biți și obțineți (1*1, 0*0, 0 *1) = 100, adică numărul 4 în format zecimal.

    | (adăugare logică)

    Similar înmulțirii logice, operația se efectuează și pe cifre binare, dar acum se returnează una dacă cel puțin un număr dintr-o cifră dată are unul. De exemplu: $a1 = 4; //100 $b1 = 5; //101 echo $a1 | $b1; // este egal cu 5

    ~ (negație logică)

    inversează toți biții: dacă valoarea biților este 1, atunci devine zero și invers. $b = 5; ecou ~$b;

    X<

    x>>y - mută numărul x la dreapta cu y cifre. De exemplu, 16>>1 mută 16 (care este 10000 în binar) cu un loc la dreapta, rezultând 1000 sau 8 în zecimală

Concatenarea șirurilor

Operatorul punct este folosit pentru a concatena șiruri. De exemplu, să conectăm mai multe linii:

$a="Bună ziua,"; $b=" lume"; eco $a . $b . „!”;

Dacă variabilele reprezintă alte tipuri decât șiruri, cum ar fi numere, atunci valorile lor sunt convertite în șiruri și apoi are loc și operația de concatenare a șirurilor.

PHP acceptă operatorii logici standard AND și &&, SAU și || , ! (nu) și XOR . Operatorii logici vă permit să comparați rezultatele a doi operanzi (o valoare sau o expresie) pentru a determina dacă unul sau ambii returnează adevărat sau fals și să alegeți dacă doriți să continuați executarea scriptului în funcție de valoarea returnată. La fel ca operatorii de comparație, operatorii logici returnează o singură valoare booleană - adevărată sau falsă, în funcție de valorile de ambele părți ale operatorului.

SAU logic (SAU și ||)

Operatorul logic SAU este notat ca SAU sau || . Efectuează o operație OR logică pe doi operanzi. Dacă unul sau ambii operanzi sunt adevărati, returnează adevărat. Dacă ambii operanzi sunt false, returnează false. Probabil ai o întrebare: de ce au făcut două versiuni ale unui operator? Sensul a doi opțiuni diferite Operatorul logic OR este că aceștia operează cu priorități diferite.

Mai întâi, să vedem cum funcționează operatorul ||. . Și astfel, dacă unul sau ambii operanzi ai săi sunt adevărati, returnează true . Dacă ambii operanzi returnează valori false, va returna false .

Operatorul SAU funcționează la fel ca operatorul ||. cu o singură excepție, dacă operatorul OR este folosit cu o atribuire, va evalua mai întâi și va returna valoarea operandului din stânga, altfel funcționează exact la fel ca operatorul ||. , adică dacă unul sau ambii operanzi ai săi sunt adevărati, returnează true . Dacă ambii operanzi returnează false, va returna false .

Pentru a clarifica modul în care funcționează, să dăm următorul exemplu:

1 // Mai întâi variabilei i se atribuie valoarea false, iar apoi se evaluează al doilea operand // Acțiune prioritară: ($var2 = false) sau adevărat $var2 = fals sau adevărat; echo $var2; // false nu este tipărit // ($var3 = 0) sau 3 $var3 = 0 sau 3; ecou"
$var3"; // => 0 ?>

Orice comparație și operatori logici pot fi combinați în structuri mai complexe:

Încă un lucru demn de menționat punct important, atât în ​​ceea ce privește OR cât și || . Operatorul logic OR își începe evaluarea cu operandul său din stânga; dacă returnează adevărat, atunci operandul din dreapta nu va fi evaluat. Acest lucru economisește timp de execuție, dar trebuie să aveți grijă să vă asigurați de acel cod de care poate depinde munca corecta programul nu a fost plasat în operandul corect.

ȘI logic (ȘI și &&)

Operatorul logic AND este notat cu AND sau && . Efectuează o operație AND logică pe doi operanzi. Returnează adevărat dacă și numai dacă ambii operanzi se evaluează la adevărat. Dacă unul sau ambii operanzi returnează false , operatorul returnează false . Semnificația celor două versiuni diferite ale operatorului „ȘI logic” este aceeași cu a celor doi operatori anteriori, și anume că aceștia lucrează cu priorități diferite.

Mai întâi, să vedem cum funcționează operatorul &&. Și astfel, dacă ambii operanzi ai săi sunt adevărati, returnează true . Dacă cel puțin unul sau ambii operanzi ai săi returnează false , va returna și false .

Operatorul AND funcționează la fel ca și operatorul && cu o excepție, dacă operatorul AND este folosit cu o atribuire, va evalua mai întâi și va returna valoarea operandului din stânga, altfel funcționează exact la fel ca și operatorul &&. Dacă cel puțin unul dintre operanzii săi returnează false, va returna și false, iar dacă ambii operanzi returnează false, va returna false.

Pentru a înțelege, să ne uităm acum la cum funcționează acest lucru în practică:

$bar3"; // => 9 ?>

SAU exclusiv (XOR)

Operatorul SAU exclusiv este notat XOR. Returnează adevărat dacă unul și numai unul dintre operanzii săi este adevărat. Dacă ambii operanzi sunt adevărati, operatorul va returna false.

Deoarece operatorul XOR are aceeași prioritate ca și operatorii AND și SAU (mai mic decât operatorul de atribuire) și este utilizat într-o expresie de atribuire, mai întâi evaluează și returnează valoarea operandului din stânga.

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

NU logic (!)

Operatorul logic NOT, numit și negație, este indicat prin semn! . El este operator unar, plasat înaintea unui singur operand. Operatorul logic NOT este folosit pentru a inversa valoarea logică a operandului său și returnează întotdeauna adevărat sau fals.

Dacă trebuie să inversați valoarea unei expresii precum a && b , va trebui să utilizați paranteze rotunde: !(a && b) . Tot cu ajutorul unui operator! Puteți converti orice valoare x în echivalentul său boolean folosind operatorul: !!x de două ori.


Principalul lucru este să luați măsuri datele operatorului- această condiție. dacă este tradus din engleză înseamnă Dacă. Condiția este acceptată ca argument (ce este în paranteze). Condiția poate fi o expresie logică sau o variabilă logică. Pentru a spune simplu, sensul expresiei va fi următorul:

Dacă (condiție)(
condiția este îndeplinită, faceți asta
}
altfel
{
condiția nu este îndeplinită, fă-o altfel
}
Sper că logica operațiunii condiționate este clară. Acum să ne uităm la un exemplu.

$a = 5;
$b = 25;

// Acum atenție! Condiție: Dacă $b este mai mare decât $a
// Semne > și< , как и в математике, обозначают больше и меньше
dacă($b > $a)
{
// dacă condiția este îndeplinită, atunci efectuați această acțiune
echo „$b este mai mare decât $a”;
}
altfel
{
// dacă nu este executat, atunci acesta
echo "$a este mai mare sau egal cu $b";
}
?>
Demonstrație Descărcați surse
Ca rezultat, scriptul va ieși 25 mai mult de 5. Exemplul este destul de simplu. Sper că totul este clar. Acum îmi propun să luăm în considerare o situație mai complicată, în care trebuie îndeplinite mai multe condiții. Fiecare condiție nouă va conține după condiția principală dacă()- auxiliar, care se scrie ca altfel daca(). Până la urmă va fi ca de obicei altfel.

Sarcină: Testarea se face la școală. Scenariul trebuie să calculeze punctajul, cunoscând condițiile pentru obținerea fiecărei note și punctajul elevului în sine. Să vedem cum să scriem asta și nu uitați să citiți comentariul.

$test = 82; // să presupunem că un elev a scris un test cu 82 de puncte

// scrie prima condiție pentru cinci
if($test > 90)
{
// dacă condiția este îndeplinită, atunci efectuați această acțiune.
ecou „Evaluare 5”;
}
// Semnul && înseamnă „și, unire”, că condiția este îndeplinită dacă ambele sunt adevărate
// adică scorul este mai mic de 91 și mai mare de 80, apoi 4. În caz contrar, condițiile se citesc mai departe
else if ($test< 91 && $test > 80)
{
ecou „Evaluare 4”;
}
else if ($test< 81 && $test > 70)
{
ecou „Evaluare 3”;
}
altfel
{
echo „Ar trebui să scriem din nou testul...”;
}
?>
Demonstrație Descărcați surse
Elevul nostru care are timp atât să se odihnească, cât și să scrie un test normal primește nota 4! Sper că principiul de funcționare este clar.

De asemenea, este posibil să înregistrați pe scurt funcționarea unei operații condiționate, atunci când aveți nevoie de o acțiune numai dacă condiția este îndeplinită.

$varsta = 19; // variabil cu vârsta

Dacă ($ vârstă > 17)(
echo "Asta este! Pot face ce vreau! Am deja $age!";
}
Un exemplu destul de frumos nota scurta operație condiționată. altfel nu este necesar sa scrii.

Operatori de comparație în PHP

Principiul de funcționare a unei operațiuni condiționate este clar. Dar, după cum înțelegeți, există multe alte moduri de a compara. Să ne uităm la tabelul de mai jos cu operatori de comparație.

Exemplu Nume Rezultat
$a == $b Este adevărat dacă $a este egal cu $b
$a === $b Identic cu adevărat dacă $a este egal cu $b și ambele variabile sunt de același tip
$a != $b Nu este egal cu Adevărat dacă $a nu este egal cu $b
$a === $b Nu este identic cu Adevărat dacă $a nu este egal cu $b și ambele tipuri nu sunt aceleași
$a > $b Mai mare decât Adevărat dacă $a este mai mare decât $b
$a< $b Меньше чем True, если $a меньше, чем $b
$a >= $b Mai mare sau egal cu Adevărat dacă $a este mai mare sau egal cu $b
$a<= $b Меньше или равно True, если $a меньше или равно $b
Acum să ne uităm la operatori cu exemple:

// contrar obiceiului = înseamnă atribuirea unei valori unei variabile, iar == este egal
dacă ($a == 5)(
echo „$a este 5”; // va imprima "5 este egal cu 5"
) altfel (
echo "$a nu este egal cu 5";
}

Dacă ($a != 6)(
echo "$a nu este egal cu 6"; // va tipări „5 nu este egal cu 6”. Necesar în caz de negare
) altfel (
echo "$a cumva este egal cu 6";
}

// cu mai mult și mai puțin cred că totul este clar. Prin urmare, exemplul este mai complicat
dacă ($a<= 6){
echo "$a este mai mic sau egal cu 6"; // va imprima "5 este mai mic sau egal cu 6"
) altfel (
echo „$a este mai mare decât 6”;
}

Operatori logici PHP

Există momente când trebuie să comparați nu o variabilă, ci două sau mai multe deodată într-o singură condiție. Pentru asta există operatori logici.

Exemplu Nume Rezultat
$a și $b logic „și” ADEVĂRAT dacă ambele $a și $b sunt ADEVĂRAT.
$a sau $b logic „sau” TRUE dacă $a sau $b este ADEVĂRAT.
$a xor $b Exclusiv „sau” TRUE dacă $a sau $b este ADEVĂRAT, dar nu ambele.
! $a Negația lui TRUE dacă $a nu este TRUE.
$a && $b logic „și” ADEVĂRAT dacă atât $a, cât și $b sunt ADEVĂRAT.
$a || $b Boolean „sau” TRUE dacă $a sau $b este TRUE.
Am observat deja că pentru operațiuni ȘiȘi sau exista operatori suplimentari? Acest lucru se face pentru a prioritiza operațiunile complexe de comparare. În tabel, operatorii logici sunt listați în ordinea priorității: de la cel mai mic la cel mai mare, adică, de exemplu, || are prioritate mai mare decât sau.

Sa trecem peste la exemple

$a = 5;
$b = 6;
$c = 7;

// condiție: dacă 5 nu este egal cu 6 (ADEVĂRAT) ȘI 6 nu este egal cu 7 (adevărat)
dacă ($a< 6 && $b != $c){
ecou „Într-adevăr așa!”; // va imprima „Într-adevăr așa!” deoarece AMBELE condiții sunt ADEVĂRATĂ
) altfel (
echo „Una dintre condiții nu este adevărată”;
}

// condiție: dacă 6 nu este egal cu 6 (FALSE) SAU 6 nu este egal cu 7 (adevărat)
dacă ($b != 6 || $b != $c)(
echo "Asta este!"; // va afișa „Asta e!”, deoarece cel puțin UNA dintre condiții este ADEVĂRATĂ
) altfel (
echo „Ambele condiții sunt false”;
}

Operator ternar

Vă sugerez să reveniți la problema codului ternar mai târziu. Nu m-am putut abține să nu menționez asta, deoarece este un design important care reduce semnificativ dimensiunea codului. Vă sugerez să vă uitați imediat la cod.

Esenta codului:(condiție) ? valoarea lui a if true: valoarea a if false

Astfel, scurtăm declarația if. Cu toate acestea, această operație este valabilă numai atunci când se atribuie valori unei variabile. Acum să ne uităm la un exemplu terminat.

// Exemplu de utilizare a operatorului ternar
$settings = (gol ($_POST["settings"])) ? „Implicit” : $_POST[„setări”];

// Codul de mai sus este similar cu următorul bloc folosind if/else
dacă (gol ($_POST[„setări”])) (
$settings = „Implicit”; // Dacă nu se transferă nimic, lăsați-l ca „Implicit”
) altfel (
$settings = $_POST["setari"]; // Dacă este trecut, atunci $settings i se atribuie valoarea transmisă.
}
?>
Citiți comentariile la cod și totul ar trebui să fie clar.

Vă mulțumim pentru atenție!


Cele două declarații principale care oferă structuri de ramificare condiționată sunt if și switch. Cea mai utilizată declarație if este folosită în structurile de salt condiționat. Pe de altă parte, în anumite situații, mai ales dacă trebuie să navigați printr-una dintre numeroasele ramuri în funcție de valoarea unei singure expresii, iar utilizarea unui număr de instrucțiuni if ​​duce la un cod mai complex, instrucțiunea switch devine mai convenabilă. .

Înainte de a studia acești operatori, trebuie să înțelegeți expresiile și operațiile logice.

Operații logice

Operațiile logice vă permit să combinați valori logice (numite și valori de adevăr) pentru a produce noi valori logice. După cum se arată în tabelul de mai jos, în limbaj PHP Operatorii logici standard (și, sau, nu și xor) sunt acceptați, primii doi având versiuni alternative.

Operații logice PHP
Operațiune Descriere
și O operație al cărei rezultat este adevărat dacă și numai dacă ambii operanzi ai săi sunt adevărati
sau O operație al cărei rezultat este adevărat dacă unul dintre operanzii săi (sau ambii operanzi) este adevărat
! O operație al cărei rezultat este adevărat dacă singurul său operand (dat în dreapta semnului operației) este fals și fals dacă operandul său este adevărat
xor O operație al cărei rezultat este adevărat dacă oricare dintre operanzii săi (dar nu ambii) este adevărat
&& La fel ca și operatorul și, dar își leagă operanzii mai strâns decât acest operator
|| La fel ca și operatorul sau, dar își leagă operanzii mai strâns decât acest operator

Operațiuni && și || ar trebui să fie familiar programatorilor C. Operație! este de obicei numit nu pentru că devine negația operandului căruia i se aplică.

Pentru a testa dacă ambii operanzi sunt adevărați, utilizați operatorul AND, care poate fi scris și sub formă de ampersand dublu (&&). Ambii operatori, AND și &&, sunt logici, singura lor diferență este că operatorul && are mai mulți prioritate ridicată decât operatorul AND. Același lucru este valabil și pentru operatorii OR și ||. Operatorul AND returnează TRUE numai dacă ambii operanzi sunt TRUE; în caz contrar, este returnat FALSE.

Pentru a verifica dacă cel puțin un operand este TRUE, utilizați operatorul OR, care poate fi scris și ca dublu linie verticala(||). Acest operator returnează TRUE dacă cel puțin unul dintre operanzii săi este TRUE.

Când utilizați operatorul SAU într-un program, pot apărea erori logice subtile. Dacă PHP detectează că primul operand este TRUE, nu va evalua valoarea celui de-al doilea operand. Acest lucru economisește timp de execuție, dar trebuie să aveți grijă să vă asigurați că codul de care programul depinde pentru a rula corect nu este plasat în al doilea operand.

Operatorul XOR vă permite să verificați dacă doar unul dintre operanzi (dar nu ambii) este ADEVĂRAT. Acest operator returnează TRUE dacă unul și numai unul dintre operanzii săi este TRUE. Dacă ambii operanzi sunt TRUE, operatorul va returna FALSE.

Puteți inversa o valoare booleană folosind operatorul NOT, care este adesea scris ca semn de exclamare(!). Returnează TRUE dacă operandul este FALSE și FALSE dacă operandul este TRUE.

Tabelul de mai jos prezintă câteva expresii logice si rezultatele lor:

Operații de comparație

Tabelul de mai jos prezintă operațiuni de comparare care pot fi utilizate fie cu numere, fie cu șiruri de caractere:

Operații de comparație
Operațiune Nume Descriere
== Egal O operație al cărei rezultat este adevărat dacă operanzii săi sunt egali și falși în caz contrar
!= Nu este egal O operație al cărei rezultat este fals dacă operanzii săi sunt egali și adevărati în caz contrar
< Mai puțin O operație al cărei rezultat este adevărat dacă operandul din stânga este mai mic decât operandul din dreapta și fals în caz contrar
> Mai mult O operație al cărei rezultat este adevărat dacă operandul din stânga este mai mare decât operandul din dreapta și fals în caz contrar
<= Mai puțin sau egal O operație al cărei rezultat este adevărat dacă operandul din stânga este mai mic sau egal cu operandul din dreapta și fals în caz contrar
>= Mai mult sau egal O operație al cărei rezultat este adevărat dacă operandul din stânga este mai mare sau egal cu operandul din dreapta și fals în caz contrar
=== Identic O operație al cărei rezultat este adevărat dacă ambii operanzi sunt egali și de același tip și fals în caz contrar

O greșeală foarte frecventă pe care trebuie să o faceți este să nu confundați operatorul de atribuire (=) cu operatorul de comparație (==).

Prioritate de operare

Desigur, nu ar trebui să folosim în exces un stil de programare în care succesiunea operațiilor este determinată în principal de utilizarea regulilor de precedență, deoarece codul scris în acest stil este greu de înțeles pentru cei care îl studiază ulterior, dar trebuie remarcat faptul că comparația operațiunile au prioritate mai mare decât operațiunile logice. Aceasta înseamnă că o declarație cu o expresie de verificare ca cea de mai jos

Cod PHP $var1 = 14; $var2 = 15; dacă (($var1< $var2) && ($var2 < 20)) echo "$var2 больше $var1 но меньше 20";

poate fi rescris ca

Cod PHP ...dacă ($var1< $var2 && $var2 < 20) ...

declarație dacă-altfel

Instrucțiuni dacă permite executarea unui bloc de cod dacă expresia condiționată din această instrucțiune evaluează la TRUE; altfel blocul de cod nu este executat. Orice expresie poate fi folosită ca condiție, inclusiv teste pentru valoare diferită de zero, egalitate, NULL care implică variabile și valori returnate de funcții.

Nu contează ce condiționale individuale alcătuiesc propoziția condiționată. Dacă condiția este adevărată, se execută codul programului, cuprins între acolade (()). În caz contrar, PHP îl ignoră și trece la verificarea a doua condiție, verificând toate condiționalele pe care le-ai notat până când atinge instrucțiunea altfel, după care va executa automat acest bloc. Declarația else este opțională.

Sintaxa instrucțiunii if este:

If (expresie condiționată) (bloc de cod de program;)

Dacă rezultatul evaluării unei expresii condiționate este TRUE, atunci blocul de cod de program situat după acesta va fi executat. În exemplul următor, dacă $username este setat la „Admin”, va fi afișat un mesaj de bun venit. Altfel nu se va întâmpla nimic:

Cod PHP $username = "Administrator"; if ($nume utilizator == „Admin”) ( echo „Bine ați venit pe pagina de administrator.”; )

Dacă un bloc de cod de program conține o singură instrucțiune, atunci acoladele sunt opționale, totuși, obicei bun– instalați-le întotdeauna, deoarece fac codul mai ușor de citit și editat.

Instrucțiunea opțională else este un bloc de cod care este executat implicit atunci când expresia condiționată este evaluată la FALSE. Declarația else nu poate fi folosită separat de instrucțiunea if deoarece else nu are propria sa expresie condiționată. Adică, altfel și dacă ar trebui să fie întotdeauna împreună în codul tău:

declarații if și else $nume utilizator = „fără administrator”; if ($username == „Admin”) ( echo „Bine ați venit la pagina de administrator.”; ) else ( echo „Bine ați venit pe pagina de utilizator.”; )

Nu uitați să închideți un bloc de cod într-o instrucțiune if cu o acoladă dacă puneți o acoladă la începutul blocului. Blocul else trebuie să aibă și bretele de deschidere și de închidere, la fel ca și blocul if.

Toate acestea sunt bune, cu excepția cazului în care trebuie să verificați mai multe condiții la rând. Instrucțiunile sunt potrivite pentru aceasta elseif. Vă permite să verificați conditii suplimentare până când este găsit adevărat sau se ajunge la blocul else. Fiecare instrucțiune elseif are propriul bloc de cod plasat imediat după expresia condiționată a instrucțiunii elseif. Declarația elseif vine după instrucțiunea if și înaintea instrucțiunii else, dacă există.

Sintaxa instrucțiunii elseif este puțin mai complicată, dar următorul exemplu vă va ajuta să o înțelegeți:

Verificarea mai multor condiții $username = "Invitat"; if ($username == „Admin”) ( echo „Bine ați venit pe pagina de administrator.”; ) elseif ($username == „Invitat”) ( echo „Vizualizarea nu este disponibilă.”; ) else ( echo „Bine ați venit pe pagină utilizator."; )

Aici sunt verificate două condiții și, în funcție de valoarea variabilei $username, acțiuni diferite. Și mai există o oportunitate de a face ceva dacă valoarea variabilei diferă de primele două.

Operator ternar?:

Operatorul ?: este un operator ternar (ternar) care ia trei operanzi. Funcționează similar cu o instrucțiune if, dar returnează valoarea uneia dintre cele două expresii. Expresia care va fi evaluată este determinată de expresia condiționată. Colonul (:) servește ca separator de expresii:

(condiție) ? evaluate_if_condition_true: evaluate_if_condition_false;

Exemplul de mai jos verifică o valoare și returnează șiruri de caractere diferite, în funcție de faptul că este TRUE sau FALSE:

Crearea unui mesaj folosind operatorul ?: $logged_in = ADEVĂRAT; $user = "Igor"; $banner = (!$logged_in) ? "Inregistreaza-te!" : "Bine ai revenit, $user!"; echo $banner;

Este destul de evident că afirmația de mai sus este echivalentă cu următoarea afirmație:

Cod PHP $logged_in = ADEVĂRAT; $user = "Igor"; if (!$logged_in) ( $banner = "Înregistrați-vă!"; ) else ( $banner = "Bine ați revenit, $utilizator!"; ) echo $banner;

declarație switch

Instrucțiuni intrerupator compară o expresie cu mai multe valori. De regulă, o variabilă este folosită ca expresie, în funcție de valoarea căreia trebuie executat un anumit bloc de cod. De exemplu, imaginați-vă o variabilă $acțiune care poate avea valorile „ADD”, „MODIFY” (modificare) și „DELETE” (ștergere). Declarația switch facilitează definirea blocului de cod care ar trebui să fie executat pentru fiecare dintre aceste valori.

Pentru a arăta diferența dintre instrucțiunile if și switch, să testăm o variabilă cu mai multe valori. Exemplul de mai jos arată codul programului care implementează o astfel de verificare pe baza instrucțiunii if, iar în exemplul următor, pe baza instrucțiunii switch:

Testarea împotriva uneia dintre mai multe valori (instrucțiunea dacă) if ($action == „ADD”) ( echo „Efectuați o adăugare.”; echo „Numărul de instrucțiuni din fiecare bloc este nelimitat.”; ) elseif ($action == „MODIFY”) ( echo „Efectuați o modificare ."; ) elseif ($action == "DELETE") ( echo "Efectuați ștergerea."; ) Testarea împotriva uneia dintre mai multe valori (instrucțiunea de comutare) comutator ($acțiune) (case „ADD”: echo „Efectuați o adăugare.”; echo „Numărul de instrucțiuni din fiecare bloc este nelimitat.”; break; case „MODIFY”: echo „Efectuați o modificare.”; break; case "DELETE": ecou "Efectuați ștergerea."; pauză; )

Declarația switch ia valoarea de lângă cuvântul cheie switch și începe să o compare cu toate valorile stând în apropiere cu cuvinte cheie caz, în ordinea locației lor în program. Dacă nu se găsește o potrivire, niciunul dintre blocuri nu este executat. Odată ce este găsită o potrivire, blocul de cod corespunzător este executat. Blocurile de cod de mai jos sunt de asemenea executate - până la sfârșitul instrucțiunii switch sau până la cuvânt cheie pauză. Acest lucru este convenabil pentru organizarea unui proces constând din mai multe etape succesive. Dacă utilizatorul a parcurs deja unii pași, va putea continua procesul de unde a plecat.

Expresia de lângă instrucțiunea switch trebuie să returneze o valoare de tip primitiv, cum ar fi un număr sau șir. O matrice poate fi folosită doar ca element separat care are o valoare de tip elementar.

Selecția implicită

Dacă valoarea expresiei condiționale nu se potrivește cu niciuna dintre opțiunile propuse în instrucțiunile case, instrucțiunea switch în acest caz vă permite să faceți ceva, la fel ca instrucțiunea alt constructii dacă, elseif, altfel. Pentru a face acest lucru, trebuie să faceți o instrucțiune ca ultima opțiune din lista de selecție Mod implicit:

Crearea unui mesaj de eroare utilizând instrucțiunea implicită $action = "ELIMINARE"; comutator ($acțiune) (case „ADD”: echo „Efectuați o adăugare.”; echo „Numărul de instrucțiuni din fiecare bloc este nelimitat.”; break; case „MODIFY”: echo „Efectuați o modificare.”; break; case „DELETE”: echo „Efectuați ștergerea.”; break; default: echo „Eroare: comanda $action nu este permisă, „. „se pot folosi doar comenzile ADD, MODIFY și DELETE.”; )

În plus față de cea obișnuită, instrucțiunea switch acceptă o sintaxă alternativă - o construcție de cuvinte cheie întrerupător/întrerupător de capăt, definind începutul și sfârșitul declarației în loc de acolade:

Declarația switch se termină cu cuvântul cheie endswitch comutator ($acțiune): case "ADD": echo "Efectuați adăugarea."; echo „Numărul de instrucțiuni din fiecare bloc este nelimitat.”; pauză; case „MODIFY”: echo „Efectuați modificarea.”; pauză; case „DELETE”: echo „Efectuați ștergerea.”; pauză; implicit: echo „Eroare: comanda $action nu este validă,”. „Pot fi folosite doar comenzile ADD, MODIFY și DELETE.”; întrerupător de capăt;

Întrerupeți execuția

Dacă numai blocul de cod corespunzător o anumită valoare, atunci cuvântul cheie break ar trebui să fie inserat la sfârșitul acestui bloc. interpret PHP, la întâlnirea cuvântului cheie break, va continua să execute linia situată după acolada de închidere a instrucțiunii switch (sau cuvântul cheie endswitch). Dar dacă nu utilizați instrucțiunea break, atunci verificarea continuă în ramurile de caz ulterioare ale constructului switch. Mai jos este un exemplu:

Ce se întâmplă în absență declarații de pauză $action="ASAMBLA COMANDA"; comutator ($acțiune) ( caz „Asamblare ORDINE”: echo „Asamblare ordine.
"; case "PACKAGE": echo "Pack.
"; case "SHIP": echo "Livrare clientului.
"; }

Dacă variabila $action este setată la „ASSEMBLE ORDER”, rezultatul acestui fragment va fi următorul:

Colectați comanda. Pentru a încheia. Livrați clientului.

Presupunând că etapa de construire a fost deja finalizată și variabila $action este setată la „PACCHET”, se va obține următorul rezultat:

Pentru a încheia. Livrați clientului.

Uneori, a nu avea o instrucțiune break este utilă, ca în exemplul de mai sus în care se formează etapele de ordine, dar în majoritatea cazurilor ar trebui folosită această instrucțiune.

Tipuri de date Cicluri 1 2 3 4 5 6 7 8 9 10