Astăzi vei învăța PHP creaza conditii prin folosire declarația if -else.
Folosind condiții, puteți verifica datele, afișa mesaje atunci când o condiție pe care o creați, redirecționați utilizatorul către o pagină secretă etc.
Nu este nimic complicat în construcția if -else (if-else) principalul lucru este să înțelegeți cum să scrieți corect condițiile, astfel încât scriptul să le îndeplinească. Toate acestea seamănă puțin cu viața noastră. Aici, de exemplu:
Trebuie să te trezești la serviciu de luni până vineri la 6:30. ce faci? Tu ai setat alarma. Condiția, deci, va fi următoarea: dacă astăzi este luni - vineri și ora este 6:30, sună ceasul deșteptător, ne trezim și facem anumite acțiuni (ne îmbrăcăm, bem cafea și un sandviș, ne spălăm pe dinți, ne spălăm fața ta și mergi la muncă).
După cum puteți vedea, un tip simplu de condiții este „dacă, atunci”, dacă luni este 6:30, atunci mergem la lucru.
Să întărim încă o dată ceea ce am spus mai sus și să încercăm să scriem cod folosind această diagramă din imagine:
Salvați ca „if.php” în folderul „test-1” al serverului local (vezi).
Introdu adresa în browser:
https://localhost/test-1/if.php
Rezultat:
Explicaţie:
Vă rugăm să rețineți că în condiții am comparat variabila $name cu valoarea „site”. Adică, în condiția în care au scris că dacă variabila $nume este egală cu „site”, apropo, semnul egal este indicat printr-un semn egal dublu (== ), atunci această condiție este adevărată, iar dacă condiția este adevărat, atunci acțiunea este afișată. Am scris acest cod în acțiunile:
ecou"
";
Cred că am rezolvat-o aici.
Nota:
== – egalitate. Exemplu: dacă ($a == $b) .
!= nu este egalitate. Exemplu: dacă ($a != $b) .
= – atribuie. Exemplu: $a = 1 .
Ne-am dat seama de condiția simplă, nu a fost dificil, dar acum să complicăm puțin sarcina. Să revenim la exemplul nostru:
De luni până vineri la 6:30, te trezești și mergi la serviciu ca de obicei lângă ceasul deșteptător, dar dacă azi este sâmbătă sau duminică, atunci ceasul deșteptător nu va suna și vei efectua alte acțiuni.
Să revenim acum la exemplele PHP și să încercăm să scriem cod folosind această schemă:
Salvați ca „if-else.php” în folderul „test-1” al serverului local (vezi lecția 1).
Introdu adresa în browser:
https://localhost/test-1/if-else.php
Rezultat:
După cum puteți vedea, variabila $name și $n sunt egale. Aceasta înseamnă că condiția este adevărată.
$nume = „site”;
$n = „site”;
dacă ($nume == $n)
Să schimbăm valoarea și să facem condiția falsă, pentru a face acest lucru, schimbați valoarea în variabilă, de exemplu, astfel:
$nume = „site”;
$n = „blog”;
dacă ($nume == $n)
poti sa faci asa:
$nume = „site”;
$n = „site”;
dacă ($nume != $n)
Acum să scriem codul PHP:
Rezultat:
Explicaţie:
În condiții, am comparat variabila $name cu variabila $n. Când variabilele aveau aceeași valoare și condițiile aveau un semn egal (==) și condiția era adevărată, această parte a codului a funcționat:
{
ecou" Mă bucur să te văd pe blogul meu $name!
";
}
De îndată ce am schimbat valoarea variabilelor, condiția a devenit falsă și o altă parte a codului a început să funcționeze:
altfel
{
echo „acțiunea este falsă
";
}
Lecția va acoperi operatorii php condiționali: instrucțiunea if și instrucțiunea switch
Instrucțiunile condiționale PHP sunt reprezentate de trei constructe principale:
Să aruncăm o privire mai atentă la fiecare dintre ele.
Figura 3.1. Declarație IF condiționată, 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; )
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!
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”
$numar=15;<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }
dacă ($număr
Exemplu: Blocurile de cod PHP pot fi sparte, să ne uităm la un exemplu: Afișează codul html pe ecran"a este egal cu 4"
1 2 3 4 |
1 Soluție:
1 2 3 | 2 Soluție: |
A este egal cu 4
A este egal cu 4 php job 3_1:
Afișează traducerea culorilor din engleză în rusă, verificând valoarea variabilei (în care este atribuită culoarea: $a="blue") php job 3_2:
Operații de comparație și regula minciunii
Construcția if între paranteze trebuie să conțină o expresie logică sau o variabilă, care este considerată din punctul de vedere al algebrei logicii, returnând valorile fie adevărate, fie false.
1 2 3 4 | Aceste. o singură variabilă poate acționa ca o condiție. Să ne uităm la un exemplu: |
$a = 1 ;
dacă ($a) ( eco $a; )
$a=1;
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: este dată o variabilă a cu o valoare șir. Dacă a este egal cu numele, atunci tipăriți
Construcții logice ȘI SAU și NU în operatorul condiționat
1 2 3 4 | $a=1; dacă ($a>0 || $a>1) ( ecou "a > 0 sau a > 1"; )< 0 ) ) { echo "a не < 0" ; } |
Pentru a indica dacă o condiție este falsă, utilizați<0)) { echo "a не < 0"; }
$a = 1 ; dacă (! ($a.
$a=1; dacă (!($a
1 2 3 4 5 6 7 8 9 10 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
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.
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!" |
;
rupe;
, dacă valoarea variabilei $day este egală cu numerele 6 sau 7
1 2 3 4 5 6 7 8 9 10 11 12 | „Ziu necunoscută” , dacă valoarea variabilei $day nu se încadrează în intervalul de numere de la 1 la 7 (inclusiv) Completează codul: |
... comutator (... ) ( cazul 1 : cazul 2 : ... ecou
; rupe;
cazul 6 : ... implicit : ... )
Comutare(...)( cazul 1: cazul 2: ... ecou „Este o zi lucrătoare”; pauză; cazul 6: ... implicit: ... ) Operator ternar PHP
Instrucțiunea if este cea mai simplă dintre instrucțiunile de ramură.
Sintaxa instrucțiunii if este:
Instrucțiunea if evaluează mai întâi expresia condiționată specificată în paranteze, al cărei rezultat este o valoare booleană. Dacă rezultatul obținut este adevărat, atunci instrucțiunea este executată. Dacă expresia returnează false, atunci instrucțiunea nu este executată. O expresie de orice complexitate poate fi folosită ca o condiție.
Dacă corpul instrucțiunii if folosește o singură instrucțiune, atunci includerea acesteia între acolade este posibilă, dar nu este necesară. Cu toate acestea, dacă trebuie să executați mai multe instrucțiuni în corpul unei instrucțiuni if, atunci aceste câteva instrucțiuni trebuie să fie incluse între acolade. Vă rugăm să rețineți că nu ar trebui să existe un punct și virgulă după acolada de închidere.
Următorul cod demonstrează utilizarea instrucțiunii if:
Instrucțiunile If pot fi imbricate în alte instrucțiuni if:
Atenție la ultimul exemplu: instrucțiunea nu trebuie să fie scrisă exact sub instrucțiunea if dacă instrucțiunea nu este de dimensiuni mari, atunci poate fi scrisă într-o singură linie;
Și așa am aflat că instrucțiunea if vă permite să executați instrucțiuni dacă condiția este adevărată. Dacă condiția este falsă, atunci nu se efectuează nicio acțiune. Cu toate acestea, este adesea necesar să executați anumite instrucțiuni dacă o anumită condiție este adevărată și alte instrucțiuni dacă condiția este falsă. În astfel de cazuri, dacă altfel se utilizează ramificare. Constă dintr-o instrucțiune if urmată de un bloc de instrucțiuni și un cuvânt cheie else urmat de un alt bloc de instrucțiuni.
Sintaxa instrucțiunii if else este:
Declarația else este opțională. Blocul de instrucțiuni situat după else este executat implicit, adică. când expresia condiționată în if returnează false . Declarația else nu poate fi utilizată separat de instrucțiunea if. Blocul else ar trebui să apară numai după instrucțiunea if poate fi considerată acțiunea implicită.
Modificând ușor exemplul nostru anterior, putem vedea cum funcționează instrucțiunea if else dacă condiția returnează false:
Declarația if else poate fi imbricată. Astfel de declarații condiționale imbricate apar destul de des în practică. O instrucțiune if este imbricată dacă este imbricată în alt bloc if sau else. Dacă codul dvs. folosește mai multe instrucțiuni if la rând, else se referă întotdeauna la cea mai apropiată if:
Ultimul else nu se aplică pentru if($a) deoarece nu este în blocul interior, deci cel mai apropiat de acesta este if($i) . Declarația else din bloc este legată de if($b), deoarece acest if este cel mai apropiat de acesta.
Declarația if/else evaluează valoarea unei expresii condiționate și execută o anumită bucată de cod de program. Dar ce se întâmplă dacă trebuie să executați unul dintre multele fragmente? Dacă trebuie să verificați mai multe condiții la rând, atunci construcția elseif sau altfel dacă este potrivită pentru aceasta (aceasta este aceeași construcție, doar scrisă diferit). Formal, nu este o construcție PHP independentă - este doar un stil de programare comun care constă în utilizarea declarațiilor repetate if/else. Permite testarea unor condiții suplimentare până când se găsește adevăratul sau se ajunge la blocul else. elseif/else if construct trebuie să apară după instrucțiunea if și înainte de instrucțiunea else, dacă există.
Aici sunt verificate trei condiții și, în funcție de valoarea variabilei $username, sunt efectuate diferite acțiuni.
Nu este nimic special în această piesă. Este pur și simplu o secvență de instrucțiuni if, în care fiecare instrucțiune if face parte din clauza else a instrucțiunii if anterioare. Pentru cei care au întâlnit pentru prima dată această formă de notație și nu prea înțeleg cum funcționează, vom rescrie același exemplu, doar într-o formă sintactică echivalentă care arată pe deplin imbricarea structurilor:
Salutare tuturor! A sosit o altă lecție de PHP. Subiectul de astăzi este unul dintre cele mai preferate dintre cei care încep să programeze. Desigur, pentru că condițiile din PHP sunt cele care ne permit să compunem diverși algoritmi. În funcție de condiții, programul se va comporta într-un fel sau altul. Și datorită lor putem obține rezultate diferite cu date de intrare diferite. PHP are mai multe constructe care pot fi folosite pentru a implementa condiții. Toate sunt folosite și au avantajele lor în diferite situații sau, dacă doriți, condiții. Sunt aceleași condiții peste tot, nu? Aşa. Nimeni nu va argumenta că în viața reală, în funcție de circumstanțe, acționăm diferit. În programare acest lucru nu este mai puțin important și acum îl vom învăța.
După cum ar trebui să vă amintiți din ultima lecție, în PHP, în funcție de operator, operanzii sunt turnați la un anumit tip. Pentru operatorii condiționali din PHP, se aplică aceleași reguli, iar aici operandul este întotdeauna turnat la o valoare booleană. În cazul în care această valoare adevărat, atunci considerăm că este îndeplinită condiția, iar dacă fals– această condiție nu este îndeplinită. În funcție de îndeplinirea condiției, putem face sau nu o acțiune. Și aici îmi propun să luăm în considerare primul operator condiționat - dacă.
Acesta este cel mai simplu și cel mai des utilizat operator. În general, designul arată astfel:
Și în viața reală, folosind operatorul dacă arata asa:
Aici am transmis în mod explicit valoarea operatorului adevărat. Desigur, acest lucru este absolut inutil. Să folosim o condiție pentru a determina numere mai mari decât 10. Este destul de simplu:
10) ( ecou „Numărul este mai mare decât 10”; )
Și după alergare vom vedea rezultatul:
Număr mai mare de 10
Este posibil să se facă astfel încât atunci când condiția nu este îndeplinită, să fie executat alt cod? Bineînțeles că poți! Pentru a face acest lucru, împreună cu operatorul dacă utilizați operatorul altfel(în rusă - altfel). Este scris după acoladele care includ codul care este executat atunci când condiția este îndeplinită. Și designul arată astfel:
10) ( echo „Numărul este mai mare decât 10”; ) else ( echo „Numărul este mai mic sau egal cu 10”; )
Aici va fi afișat din nou un mesaj pe ecran:
Număr mai mare de 10
Totuși, dacă modificăm datele de intrare și variabila $x la început atribuim valoarea 8 , va fi afișat mesajul:
Număr mai mic sau egal cu 10
Încercați asta chiar acum.
În cazul în care trebuie să verificați mai multe condiții, după operator dacă se adauga si operatorul elseif. Acesta va verifica condiția numai dacă prima condiție nu este îndeplinită. De exemplu:
10) ( echo „Numărul este mai mare decât 10”; ) elseif ($x == 10) ( echo „Numărul este 10”; )
În acest caz, ecranul va afișa:
Numărul este 10
Și da, după acest operator puteți adăuga altfel. Codul din interiorul acestuia va fi executat dacă nu este îndeplinită nici una dintre condiții:
10) ( echo „Numărul este mai mare decât 10”; ) elseif ($x == 10) ( echo „Numărul este 10”; ) else ( echo „Numărul este mai mic de 10”; )
Rezultatul acestui cod, cred, nu trebuie explicat. Da, apropo, o listă întreagă de elseif-s. De exemplu, așa:
Amintiți-vă, în lecția despre am învățat cum să transmitem în mod explicit valori la un anumit tip. De exemplu:
Rezultatul va fi adevărat.
Funcționând în același mod, numai conversia implicită are loc întotdeauna în condiție. De exemplu, următoarea condiție:
Va reuși deoarece numărul 3 va fi convertit în adevărat. LA fals se vor da următoarele valori:
Deci, orice număr diferit de zero și șir diferit de zero va fi convertit în adevărat iar condiția va fi îndeplinită. Excepția este o linie formată dintr-un zero:
De asemenea, va fi convertit în fals.
Am atins acest subiect cu referire la booleanîn temele pentru această lecție. Asigurați-vă că îl completați. Acum să trecem la următoarea declarație condiționată.
Dincolo de design dacă-altfel Mai există un operator de condiție. Aceasta - comutator. Acesta este un operator foarte interesant care necesită memorarea mai multor reguli. Să vedem mai întâi cum arată în următorul exemplu:
La început, acest operator poate părea destul de complex. Totuși, dacă te uiți la asta, totul devine clar. În operand comutator se specifică o anumită expresie. În cazul nostru, aceasta este o variabilă $x, sau mai degrabă sensul său - 1 .
În acolade listăm operatorii caz, după care indicăm valoarea cu care se compară valoarea operandului comutator. Comparația nu este strictă, adică este ca și cum am folosi operatorul ==. Și dacă condiția este îndeplinită, atunci codul specificat după două puncte este executat. Dacă niciuna dintre condiții nu este îndeplinită, atunci codul din secțiune este executat implicit, care în general s-ar putea să nu existe și atunci nu se va executa nimic. Vă rugăm să rețineți că în cadrul fiecărei secțiuni caz, la final am scris operatorul pauză. Acest lucru se face astfel încât, după executarea codului, dacă condiția este îndeplinită, condițiile nu vor continua să fie verificate. Adică dacă nu ar fi pauză la sfârşitul secţiunii cazul 1, apoi după ce textul este afișat
Numărul este 1
conditia de comparatie cu 2 , iar apoi codul din secțiune ar fi executat implicit. Nu uitați să scrieți pauză!
În general, acest cod ar putea fi scris folosind construcția dacă-altfel dacă-altfel:
Dar sub forma unui design carcasa comutatorului Codul în acest caz particular pare mai simplu. Și iată de ce:
Și nu am spus totul despre comutator- poti scrie mai multe caz-s la rând, atunci codul va fi executat cu condiția ca cel puțin unul dintre ele să fie executat. De exemplu:
De acord, acest lucru poate fi convenabil.
Bine, să trecem peste caracteristicile operatorului comutator, care trebuie amintit mereu.
Ei bine, vă amintiți operatorii condiționali? Să o punem în practică cu mai multe exemple reale.
Iată un exemplu - trebuie să determinați dacă un număr este par sau nu. Pentru a face acest lucru, trebuie să verificăm dacă restul împărțirii prin 2 va fi egal 0 . Citiți mai multe despre operatori. Să facem asta:
Încercați să schimbați singur valoarea variabilei $x. Cool, nu? Funcționează!
Să învățăm acum cum să calculăm modulul unui număr. Dacă numărul este mai mare sau egal cu zero, atunci trebuie să scoateți acest număr în sine, dacă este mai mic, înlocuiți semnul de la minus la plus.
= 0) ( echo „Modulul numărului: „ . $x; ) else ( echo „Modulul numărului: „ . -$x; )
Rezultat:
Număr modul: 2
După cum vedem, totul a funcționat cu succes.
În plus, PHP are un alt operator, care este o formă scurtă a constructului dacă-altfel. Acesta este un operator ternar. În același timp el se întoarce rezultate diferite în funcție de îndeplinirea sau nu a condiției. În general, utilizarea sa arată astfel:
Stare? rezultat_dacă_adevărat: rezultat_dacă_fals
Sau folosind exemplul aceleiași locații de modul:
= 0 ? $x: -$x; echo "Modul: " . $mod;
Rezultat:
Modul: 2
Cool, nu? Operatorul ternar se potrivește foarte elegant atunci când rezolvă probleme atât de simple.
Condițiile pot fi plasate unul în celălaltși, în general, ce nu poți face cu ele. De exemplu:
0) ( if ($x >= 100) ( echo „Numărul este mai mare sau egal cu 100”; ) else ( echo „Numărul este mai mare decât 0, dar mai mic de 100”; ) ) else ( echo „Numărul este mai mic sau egal cu 0"; )
Prieteni, sper că v-a plăcut lecția. Dacă da, mă voi bucura dacă îl distribui pe rețelele de socializare sau le spui prietenilor tăi. Acesta este cel mai bun suport pentru proiect. Mulțumesc celor care fac asta. Dacă aveți întrebări sau comentarii, scrieți despre asta în comentarii. Și acum, să ne facem cu toții rapid temele, există și mai multe exemple interesante cu condiții. La revedere tuturor!
Deci, știm deja cum să creăm și să ieșim variabile. De asemenea, avem deja o idee clară despre modul în care variabilele interacționează între ele în PHP. Acum este timpul să trecem la construcția foarte importantă IF-ELSE (if-else) în PHP.
Iată sintaxa de lucru pentru această construcție:
IF (condiție) - dacă condiția este adevărată, atunci
{
actiuni
}
else - dacă condiția este falsă, atunci acestea sunt executate
{
actiuni
}
?>
Să vedem cum funcționează structura folosind un exemplu specific:
$c = 3;
$d = 5;
dacă ($c ==$d)
{
echo „Variabilele sunt egale”;
}
altfel
{
echo „Variabilele nu sunt egale”;
}
?>
Puteți vedea că la început am atribuit variabilelor $c și $d valori diferite. Apoi punem o condiție și verificăm dacă aceste variabile sunt egale între ele. Și deoarece nu sunt egale, partea else și declarația echo sunt declanșate. Adică, rezultatul executării acestui cod va fi inscripția pe ecran - Variabilele nu sunt egale. Dacă aveți întrebări, întrebați! Voi fi bucuros să le răspund.
Sintaxa prezentată mai sus poate fi numită și construcția IF-ELSE cu o singură condiție. Acum să complicăm exemplul prezentat mai sus și să adăugăm încă o condiție. Pentru a face acest lucru, vom crea încă 1 exemplu, dar vom aplica deja condiții duble IF-ELSE.
$c = 3;
$d = 5;
$e = 8;
$k = 10;
dacă ($c !=$d și $e !=$k)
{
echo „Variabilele nu sunt egale”;
}
altfel
{
echo „Variabilele sunt egale”;
}
?>
Aș dori să notez că != - în php înseamnă „nu este egal”.
Condițiile duble în php sunt create folosind funcții booleene:
Rezultatul executării programului nostru este afișarea mesajului „Variabilele nu sunt egale”.