Operatorii logici PHP includ: Operatorul de paranteze

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, PHP acceptă operatori logici standard (și, sau, nu și xor), 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 depinde lucru corect 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 semn de exclamare(!). Returnează TRUE dacă operandul este FALSE și FALSE dacă operandul este TRUE.

Tabelul de mai jos prezintă câteva expresii booleene și rezultatele acestora:

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 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. Permite testarea unor condiții suplimentare până când este găsit adevărat sau până când 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ânt cheie comutator și începe să-l 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ântul 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 else a construcției if, elseif, else. 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ă când nu există declarații de pauză $action="COMANDA DE ASSEMBLARE"; comutator ($acțiune) ( caz „Asamblare ORDINE”: echo „Asamblare ordine.
"; case "PACHET": echo "Pachet.
"; 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

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, pe 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 performează acțiune specifică, sau intervenție chirurgicală.

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;
/ - operator de divizie;
* — operator de multiplicare;
% este operatorul pentru obținerea restului în timpul împărțirii;
++ — operator pentru creșterea 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 numar 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. Mai sunt ceva 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 unul.

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.

Deoarece astfel de date nu sunt aproape niciodată folosite în dezvoltarea site-ului web, nu ne vom opri asupra lor în detaliu. Vă voi arăta doar cum arată, astfel încât atunci când întâlniți astfel de simboluri să vă puteți imagina cu ce aveți de-a face.

& - conexiune pe biți și (și);
~ — negație pe biți (nu);
| — unire pe biți SAU (sau);
^ — eliminare pe biți OR (xor);
<< — сдвиг влево битового значения операнда;
>> — 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 comparație

Operatorii de comparație se referă la operatori logici, și sunt folosite 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 rezultat al comparației, pe ecran este afișat fie unul, care corespunde cu adevărat (adevărat), fie un șir gol, care corespunde cu fals (fals).

ecou 1 > 0 ; // 1
ecou 1< 0 ; // пустая строка
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.

Operatorii condiționali sunt numiți așa deoarece sunt proiectați pentru a testa o anumită condiție, în funcție de care este efectuată o anumită 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< $nexT)
{
ecou „Șansa de precipitații”; // Ieșire Precipitații posibile
}
?>

$next = "Umiditatea aerului 80%";
$nexT = "Umiditatea aerului 90%";
dacă ($next > $nexT)
{
ecou „Șansa de precipitații”; // 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.

$next = "Umiditatea aerului 80%";
$nexT = "Umiditatea aerului 90%";
dacă ($next > $nexT)
{
ecou „Șansa de precipitații”;
}
altfel
{
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 operatorii condiționali verifică o condiție și scot rezultatul corect în funcție de aceasta.

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



dacă ($next > $nexT)
{
ecou „văd”;
}
elseif ($next<= $nexT)
{
ecou „Zăpadă”;
}
elseif ($next >= $nexT)
{
ecou „Ploaie”;
}
elseif ($next == $nexT)
{
ecou „Secetă”;
}
altfel
{
ecou „Șansa de precipitații”;
}
?>

Acest program va scoate „Snow”. Dacă niciuna dintre condiții nu se potrivește, va afișa „Șansa de precipitații”.

O instrucțiune if poate conține câte blocuri elseif doriți, dar o singură instrucțiune elseif.

Permis Opțiune alternativă 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%";
dacă ($next<= $nexT):

ecou „Zăpadă”;

elseif ($next >= $nexT):

ecou „Ploaie”;

elseif ($next == $nexT):

ecou „Secetă”;

altceva:

ecou „Șansa de precipitații”;
endif ;
?>

Operatori logici

Operatorii logici sunt similari cu operatorii 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 asupra operatorilor logici mai detaliat.

Operator de atribuire

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

$next = „Bună ziua”
echo "Bună ziua" // Bună
?>

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 paranteze acordă prioritate acțiunii cuprinse în ele.

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.

dacă ($următorul)
{

}

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

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

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

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

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.

Cred că este suficient deocamdată. În principiu, nu numai semnele, ci și funcțiile și alte elemente pot fi operatori, așa că este foarte greu să le enumerați pe toate și nu are rost.

Este suficient să aveți o idee despre elementele de bază. Și vom analiza restul folosind exemple practice.

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 se poate întâmpla?
- Nu mă înțeleg. Se pare că am conectat ștecherul corect

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 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 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 &&. 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, 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.

Lecția va acoperi instrucțiunile php condiționate: instrucțiunea if și instrucțiunea switch

Instrucțiunile condiționale PHP sunt reprezentate de trei constructe principale:

  • operator de condiție dacă,
  • operator comutator intrerupator
  • Și operator ternar.

Să aruncăm o privire mai atentă la fiecare dintre ele.

PHP if declarație

Figura 3.1. Operator condiționat IF, versiune scurtă


Orez. 3.2. IF ELSE Sintaxa instrucțiunii condiționale


Orez. 3.3. Sintaxa completă a instrucțiunii condiționale IF elseif

Să rezumăm:

Sintaxă completă:

if (condiție) ( // dacă condiția este adevărată operator1; operator2; ) elseif(condiție) ( operator1; ... ) else ( // dacă condiția este falsă operator1; operator2; )

  • Sintaxa scurtată poate nu conțin părți ale constructului else și nu conțin condiție suplimentară elseif
  • În loc de cuvântul funcție elseif, puteți scrie elseif (separat)
  • Pot exista mai multe elseifs într-un singur construct. Va fi executată prima expresie elseif egală cu TRUE.
  • Dacă există o condiție alternativă elseif altfel construi trebuie să fie ultimul în sintaxă.

O declarație condiționată poate folosi două puncte: în loc de acolade. În acest caz, afirmația se termină cu cuvântul auxiliar endif

Orez. 3.4. Instrucțiunea condiționată If și Endif în php

Exemplu:

if($x > $y): echo $x." este mai mare decât ".$y; elseif($x == $y): // când folosiți „:” nu puteți scrie separat altfel dacă echo $x.” este egal cu „.$y; else: echo $x." not > and not = ".$y; endif;

Important: Când folosiți două puncte în loc de bretele într-o construcție, elseif nu poate fi scris în două cuvinte!

Operații logice într-o stare

Condiția if din paranteze poate conține următoarele operații:

Exemplu: verificați valoarea unei variabile numerice: dacă este mai mică sau egală cu 10, afișați un mesaj „un număr mai mic sau egal cu 10”, altfel afișați un mesaj „un număr mai mare de 10”


Soluţie:

$numar=15; dacă ($număr<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

Blocurile de cod PHP pot fi sparte, să ne uităm la un exemplu:

Exemplu: Afișează codul html pe ecran "a este egal cu 4", dacă variabila $a este într-adevăr egală cu 4


1 Soluție:
1 2 3 4

2 Soluție:

1 2 3 A este egal cu 4

A este egal cu 4

php job 3_1: Ieșiți traduceri color din în limba englezăîn rusă, verificând valoarea variabilei (în care este atribuită culoarea: $a="albastru")


php job 3_2: Găsiți maximum trei numere

Operații de comparație și regula minciunii

Construcția if trebuie să conțină între paranteze expresie logică sau o variabilă, care este considerată din punctul de vedere al algebrei logicii, returnând valorile fie adevărate fie false

Acestea. o singură variabilă poate acționa ca o condiție. Să ne uităm la un exemplu:

1 2 3 4 $a = 1 ; dacă ($a) ( ecou $a; )

$a=1; dacă ($a) ( ecou $a; )

În exemplu, traducătorul limbajul php va lua în considerare variabila din paranteze pentru regula minciunii:

Regula minciunii sau ceea ce este considerat fals:

  • logic Fals
  • zero întreg ( 0 )
  • zero real ( 0.0 )
  • linie goalăși sfoară «0»
  • matrice fără elemente
  • obiect fără variabile
  • tip special NUL

Astfel, în exemplul considerat, variabila $a este egală cu unu, în consecință condiția va fi adevărată și operatorul echo $a; va afișa valoarea variabilei.

php job 3_3: variabila dată a valoare șir. Dacă a este egal cu numele, imprimați "Bună, nume!", dacă a este egal cu o valoare goală, atunci ieșire "Bună străină!"

Construcții logice ȘI SAU și NU în operatorul condiționat

  1. Uneori este necesar să se prevadă îndeplinirea mai multor condiții simultan. Apoi condițiile sunt combinate operator logic AND — && :
  2. $a=1; dacă ($a>0 || $a>1) ( ecou "a > 0 sau a > 1"; )

  3. Pentru a indica dacă o condiție este falsă, utilizați operator logic NU — ! :
  4. 1 2 3 4 $a = 1 ; dacă (! ($a< 0 ) ) { echo "a не < 0" ; }

    $a=1; dacă (!($a<0)) { echo "a не < 0"; }

Comutați operatorul PHP

Operatorul comutator sau „comutator” înlocuiește mai multe constructe if consecutive. Procedând astfel, compară o variabilă cu mai multe valori. Astfel, acesta este cel mai convenabil mijloc pentru organizarea multi-ramurilor.

Sintaxă:

1 2 3 4 5 6 7 8 9 10 comutator ($variabilă) (case "valoare1": operator1; pauză; caz "valoare2": operator2; pauză; caz "valoare3": operator3; pauză; [ implicit: operator4; pauză ; ] )

comutați($variabilă)( cazul „valoare1”: operator1; pauză; caz „valoare2”: operator2; pauză; caz „valoare3”: operator3; pauză; )

  • Operatorul poate verifica atât valorile șirurilor (apoi sunt specificate între ghilimele), cât și valorile numerice (fără ghilimele).
  • Declarația de pauză în construcție este necesară. Iese din construct dacă condiția este adevărată și este executat operatorul corespunzător condiției. Fără pauză, toate declarațiile de caz vor fi executate indiferent de adevărul lor.

Orez. 3.5. Declarație de comutare condiționată


Exemplu: este dat o matrice cu nume complete masculine. Verificați primul element al matricei și, în funcție de nume, afișați un salut cu un nume scurt.


Soluţie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $nume = matrice ("Ivan" , "Peter" , "Semyon" ); comutare ($names [ 0 ] ) ( case „Peter” : ecou „Bună ziua, Petya!” ; break ; case „Ivan” : ecou „Hello, Vanya!” ; break ; case „Semyon” : ecou „Hi, Vanya! " ; pauză ; implicit: echo "Bună, $nume!"; pauză ; )

$nume=matrice("Ivan","Peter","Semyon"); comutare($nume)( caz „Peter”: ecou „Bună, Petya!”; pauză; caz „Ivan”: ecou „Bună, Vanya!”; pauză; caz „Semyon”: ecou „Buna, Vanya!”; pauză ; implicit: echo „Bună ziua, $nume!”; pauză; )

php job 3_4:

  • Creați o variabilă $day și atribuiți-i o valoare numerică arbitrară
  • Folosind constructia switch, tipăriți fraza „Este o zi de lucru”, dacă valoarea variabilei $day se încadrează în intervalul de numere de la 1 la 5 (inclusiv)
  • Tipăriți fraza „Este o zi liberă”, dacă valoarea variabilei $day este egală cu numerele 6 sau 7
  • Tipăriți fraza „Ziu necunoscută”, dacă valoarea variabilei $day nu se încadrează în intervalul de numere de la 1 la 7 (inclusiv)

Completează codul:

1 2 3 4 5 6 7 8 9 10 11 12 ... comutator (... ) ( cazul 1 : cazul 2 : ... ecou „Este o zi de lucru”; pauză ; cazul 6 : ... implicit : ... )

Comutare(...)( cazul 1: cazul 2: ... ecou „Este o zi lucrătoare”; pauză; cazul 6: ... implicit: ... )

Operator ternar PHP

Operator ternar, adică cu trei operanzi, are o sintaxă destul de simplă în care la stânga lui ? se scrie conditia, iar in dreapta sunt doi operatori despartiti prin semn: , in stanga semnului operatorul se executa daca conditia este adevarata, iar in dreapta semnului: operatorul se executa daca conditia este fals.

condiție? operator1 : operator2 ;

Principalul lucru în acțiunea acestui operator este condiția. 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 sa fie logica operație condiționată de inteles. 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
dacă($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 comparație. Î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!