Declarații condiționale. PHP: Operatori logici

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

    / (diviziune)

    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 comparare

Operațiile de comparare 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. Următoarele operațiuni de comparare sunt disponibile.

    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ă true, î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 utilizează 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. Următoarele sunt disponibile operatii logice:

    Returnează adevărat dacă ambele operații de comparare 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 realizează 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 bit cu bit și obțineți (1*1, 0*0, 0 *1) = 100, adică numărul 4 în zecimală format.

    | (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.

Bună ziua dragi programatori începători. Să continuăm să studiem elementele care alcătuiesc.

În acest articol, vom afla ce sunt operatorii php. De fapt, cu unele dintre ele le cunoaștem aproape încă din copilărie, dar le cunoaștem doar ca semne (+, -, =, !, ?).

În php, toți sunt numiți operatori, ceea ce este destul de logic, deoarece efectuează o anumită acțiune sau operație.

Ai putea spune chiar că toate caracterele imprimabile care nu sunt o literă sau un număr sunt operatori în PHP. Dar asta nu este tot, deoarece există operatori formați din litere.

Să începem în ordine.

Operatori aritmetici

Operatorii aritmetici sunt utilizați pentru a efectua operații asupra numerelor.
+ este operatorul de adăugare;
— — operator de scădere;
/ este operatorul de diviziune;
% este operatorul pentru obținerea restului în timpul împărțirii;
++ — operator de creștere cu unu (increment);
— — — scădere cu un operator (scădere)

Când scrieți, un spațiu este de obicei plasat înainte și după operator. Acest lucru se face doar pentru ușurința citirii codului, deși acest spațiu nu afectează nimic și vă puteți descurca fără el dacă doriți.

Expresiile complexe sunt compuse după regulile acceptate în aritmetică, adică înmulțirea și împărțirea au prioritate față de adunarea și scăderea, iar când ambele sunt prezente în expresie, acestea din urmă sunt cuprinse între paranteze.

ecou (6 + 7 ) * (7 + 8 );
?>

// 195 La efectuarea unei acțiuni, împărțirea unui număr întreg la un număr întreg, în cazul obținerii unui rest, rezultatul este convertit automat în număr real

(număr în virgulă mobilă).
?>

ecou 8 / 3 ; //2.66666666666 Numărul de caractere afișat pentru număr fracționar, depinde de

valoarea stabilită

în directiva de precizie găsită în fișierul php.ini. De obicei, acestea sunt 12 caractere fără a număra punctul.
?>

Operatorul % este folosit în mod obișnuit pentru a determina dacă un număr este divizibil cu altul fără rest sau nu. ecou 53328 % 4 ;//0

Se apelează operații cu operatori aritmetici, cu excepția creșterii și decrementelor binar, deoarece implică doi operanzi (termen + termen, dividend/divizor etc.) Sunt numite acțiunile de creștere și decreștere unar

, deoarece implică un singur operand. Sunt mai multe

operație condiționată

, care implică trei operanzi.
Operatorii de creștere (++) și de decrementare (- -) se aplică numai variabilelor.
?>

Număr întreg de tip variabilă (numere întregi)

$next = 3 ;
echo +$next;
?>

// 4

Șir de tip variabil

$next = "abc";

echo $next; // abd Litera „d” este tipărită în locul literei „c” deoarece este următoarea în alfabet și am mărit valoarea variabilei cu una.

Exemplele arată acțiuni cu creștere și, în același mod, puteți efectua acțiuni cu decrement.

Operatori pe biți
Operatorii pe biți sunt proiectați să lucreze cu date binare. Dacă cineva nu are idee despre ce este, o să explic.
Numerele binare
sunt numere ca 1001000011100000111000.
<< — сдвиг влево битового значения операнда;
>> — deplasează la dreapta valoarea biților a operandului;

Este destul de probabil să întâlniți acești operatori, deoarece datele binare sunt utilizate pe scară largă în dezvoltarea de programe software. grafica pe computer. Dar pentru a le studia, dacă cineva are nevoie, va trebui să urmeze un curs separat pe o altă resursă.

Operatori de comparare

Operatorii de comparație sunt operatori logici și sunt utilizați pentru a compara variabile. Matricele și obiectele nu pot fi comparate folosindu-le.

> - operator mai mare decât;
=> - operator mai mare sau egal;
< — оператор меньше;
<= — оператор меньше или равно;
== — operator de egalitate;
!= — operator de inegalitate;
=== — operator de echivalență (valoarea și tipul variabilei sunt egale);
!== — operator de non-echivalență;

Ca urmare a comparației, pe ecran este afișat fie unul, care corespunde cu adevărat, fie un șir gol, care corespunde cu fals.

ecou 1 > 0 ;
// 1< 0 ; // пустая строка
ecou 1
ecou 1 => 0 ;
?>

// 1

ecou 1 == 1 ;

// 1 Deci, prin ei înșiși, operatorii de comparație nu sunt utilizați aproape niciodată. Scopul lor principal este să lucreze împreună cu declarația if.

Declarații condiționale if, else, elseif.



Declarații condiționale< $nexT)
{
sunt numite astfel deoarece au scopul de a verifica o anumită condiție, în funcție de care se efectuează una sau alta acțiune. Declarația if ia ca argument o variabilă booleană sau o expresie. Dacă condiția este adevărată, rezultatul este afișat, dacă nu este adevărat, este afișată o linie goală.
}
?>

dacă ($next
ecou „Șansa de precipitații”;
// Ieșire Precipitații posibile
{
sunt numite astfel deoarece au scopul de a verifica o anumită condiție, în funcție de care se efectuează una sau alta acțiune. $next = "Umiditatea aerului 80%";
}
?>

$nexT = "Umiditatea aerului 90%";

dacă ($next
ecou „Șansa de precipitații”;
// Ieșire Precipitații posibile
{
dacă ($next > $nexT)
}
// Imprimă o linie goală
{
Dacă programul trebuie să specifice două acțiuni, dintre care una va fi efectuată dacă valoarea este adevărată, iar cealaltă dacă valoarea este falsă, atunci împreună cu instrucțiunea if se utilizează instrucțiunea else.
}
?>

ecou „Șansa de precipitații”;

altfel



// Ieșire Precipitații posibile
{
ecou „Nu se așteaptă precipitații”;
}
În acest caz, va fi afișat „Precipitația nu este așteptată”, iar dacă în expresie schimbați semnul „Mai mult” în „Mai puțin”, atunci va fi afișat „Precipitația este posibilă”. Acesta este modul în care instrucțiunile condiționate verifică o condiție și scot rezultatul corect în funcție de aceasta.<= $nexT)
{
De foarte multe ori este nevoie de a seta mai mult de două condiții, iar apoi, pentru a le verifica secvențial, se folosește operatorul elseif.
}
ecou „văd”;
{
elseif ($next
}
ecou „Zăpadă”;
{
elseif ($next >= $nexT)
}
// Imprimă o linie goală
{
dacă ($next > $nexT)
}
?>

ecou „Ploaie”;

elseif ($next == $nexT)

ecou „Secetă”; Acest program va scoate „Snow”. Dacă niciuna dintre condiții nu se potrivește, va afișa „Șansa de precipitații”. intrări - fără bretele. În acest caz, liniile instrucțiunilor if, else, elseif se termină cu două puncte și întreaga construcție se termină cu cuvântul cheie (operator) endif.

$next = "Umiditatea aerului 50%";
$nexT = "Umiditatea aerului 60%";
Declarații condiționale<= $nexT):

De foarte multe ori este nevoie de a seta mai mult de două condiții, iar apoi, pentru a le verifica secvențial, se folosește operatorul elseif.

elseif ($next >= $nexT):

elseif ($next

elseif ($next == $nexT):

elseif ($next >= $nexT)

altceva:

dacă ($next > $nexT)
endif ;
?>

Operatori logici

Operatori logici similar cu operatori pe biți. Diferența dintre ele este că primele operează cu variabile logice, iar cele din urmă cu numere.

Operatorii logici sunt utilizați în cazurile în care trebuie să combinați mai multe condiții, ceea ce va reduce numărul de instrucțiuni if, ceea ce, la rândul său, reduce probabilitatea de erori în cod.

&& - conjuncție de legătură ȘI;
și - de asemenea AND, dar cu prioritate mai mică;
||
- conjuncția separatoare SAU;
sau - tot SAU, dar cu prioritate mai mică;
xor - OR exclusiv;

!

- negare;

Prioritate mai mică înseamnă că dacă ambii operatori sunt prezenți, cel cu prioritate mai mare este executat primul.

În viitor, folosind exemple de scripturi mai complexe, ne vom opri mai detaliat asupra operatorilor logici.

Operator de atribuire
Operatorul de atribuire = atribuie valoarea operandului din dreapta operandului din stânga.
?>

$next = „Bună ziua”

echo „Bună ziua” // Bună ziua

Punct operator
Operatorul punct separă partea întreagă a unui număr de partea fracțională și combină mai multe șiruri și un număr într-un șir întreg. $next = 22 ;
?>

ecou „Azi după” .$next. „se așteaptă îngheț”;

// Astăzi după 22 este de așteptat îngheț Operatorul de paranteze Ca și în matematică, operatorul

parantezele

acordă prioritate acţiunii cuprinse în acestea.

Datele cuprinse între paranteze sunt executate mai întâi, apoi toate celelalte.

Operator bretele

Există trei moduri, sau chiar stiluri, de a plasa bretele în PHP.
{

}

1. Stil BSD - parantezele sunt aliniate la stânga.

Există trei moduri, sau chiar stiluri, de a plasa bretele în PHP.
{
dacă ($următorul)
}

2. Stil GNU - parantezele sunt aliniate indentate de la marginea din stânga

ecou „Bună ziua dragi programatori începători”;
dacă ($următorul)
}

3. Stilul K&R - paranteza se deschide pe linia operatorului

dacă ($următorul)(

De la bun început, trebuie să alegeți unul dintre stiluri și, în viitor, atunci când scrieți scripturi, utilizați-l numai. În plus, nu contează deloc stilul pe care îl preferi. Este important ca acesta să fie uniform pe tot parcursul programului.

Un irlandez se plimbă în lacrimi pe aeroportul Sheremetyevo. Unul dintre angajați a decis să simpatizeze:
— Îți e dor de patria ta?
- Deloc. Tocmai mi-am pierdut toate bagajele
- Cum s-a putut întâmpla asta?
- Nu mă înțeleg. Se pare că am conectat ștecherul corect

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țiunea 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 pentru programatorii C Operation! 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 (&&). Atât operatorii AND, cât și && sunt operatori logici, singura diferență este că operatorul && are o prioritate mai mare decât operatorul AND. Același lucru se aplică operatorilor OR și ||. Operatorul AND returnează TRUE numai dacă ambii operanzi sunt TRUE; V altfel returnează FALSE.

Pentru a verifica dacă cel puțin un operand este TRUE, utilizați operatorul SAU, care poate fi scris și ca o linie verticală dublă (||). 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 depinde munca corecta programul nu a fost 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 semnul exclamării(!). 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 comparare

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

Operații de comparare
Operațiunea 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 mic sau egal cu 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 mare sau egal cu 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 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 // Imprimă o linie goală, 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, bun obicei– 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 la 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) ? "Registru!" : "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 comutator 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). Instrucțiunea 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 de program care implementează o astfel de verificare pe baza instrucțiunii if, iar în exemplul următor - pe baza declarații de comutare:

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 "Perform deletion."; ) 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.”;

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ă 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 câțiva 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ă numai sub forma acesteia element individual, având 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 else a construcției if, elseif, else. Pentru asta ai nevoie ultima varianta faceți o instrucțiune în lista de selecție 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.” implicit: echo „Eroare: comanda $action nu este validă, „Pot fi utilizate 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ă urmează să fie executat doar un bloc de cod corespunzător unei anumite valori, atunci cuvântul cheie break ar trebui să fie inserat la sfârșitul acelui 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ă când nu există declarații de pauză

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

Ambalaj. 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

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 și operatorul ||. cu o singură excepție, dacă operatorul OR este utilizat 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 || , adică dacă unul sau ambii operanzi ai săi sunt adevărati, returnează adevărat. Dacă ambii operanzi returnează valori 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 al doilea operand este evaluat // 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:, 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 avut grijă să se asigure că codul de care poate depinde funcționarea corectă a programului nu este plasat în operandul din dreapta.

Ș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;< 3) xor (5 != 5)); // true ?>

var_dump($a1); // => 19 var_dump(true xor true); // false var_dump((2

NU logic (!) Operatorul logic NOT, numit și negație, este indicat prin semn! . El este operator unar

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

  • Serghei Savenkov

    un fel de recenzie „scurtă”... de parcă s-ar grăbi undeva