Declarație condiționată dacă altfel. Declarații condiționale Imbricate if condiții în php

16 noiembrie 2016

Prin utilizarea declarații condiționale if, else, elseif poți crea un construct logic și poți scrie un script pentru orice. Dacă traducem numele acestora declarații condiționale, atunci vom înțelege imediat despre ce vorbim.

Dacă tradus ca „dacă”

Altfel tradus ca „altfel”

Logica din spatele construcției declarațiilor condiționale este simplă; întâlnim acest tip de logică în viață în fiecare zi.

Ei bine, de exemplu, această afirmație:

Dacă aprinzi lumina,
Va fi lumină.
In caz contrar
Va fi întuneric.

Cuvintele „dacă” și „altfel” sunt doar declarații condiționate.

Într-un limbaj de programare este la fel, dar noi înșine stabilim condițiile și evenimentele, folosind declarații condiționale, ca creatori ai ideilor noastre.

dacă (condiția este adevărată) (
are loc o anumită acțiune;
}
altfel, dacă condiția nu este adevărată (
are loc o altă acțiune;
}

Sintaxa PHP ar arăta astfel:

dacă (condiția este adevărată) (
Se execută o anumită acțiune;
}
altceva(
Efectuează o altă acțiune dacă condiția nu este adevărată;
}
?>

Mai aproape de practică.

Scriem un script pentru un buton folosind instrucțiuni condiționale.

În dosar Deschideți Server -> domenii Să creăm un folder și să-i denumim, de exemplu, lecția 3.local.

Creați un fișier în editor index.php(setăm sintaxa la PHP) și o salvăm într-un folder lecția 3.local.

Și să scriem un simplu buton HTML:




charset="utf-8" >
<span>dacă altfel construi</span>


action="" method="POST" >



Pentru atribut metodăîn etichetă formă stabilim valoarea POST. Aceasta înseamnă că datele formularului vor fi trimise folosind metoda POST. Vom vorbi mai multe despre metodele de transfer de date în lecțiile următoare. Ce s-a întâmplat acțiune Nici nu te deranja încă.

Dacă deschidem index.php prin DeschisServer, atunci vom avea doar un buton, dar nu funcționează încă.

Ei bine, acum scriem scenariul în sine.

Să presupunem că vrem să apară expresia „Ați făcut clic pe buton” atunci când faceți clic pe un buton.

Logic ar arata asa:

Dacă (buton apăsat)(
Afișăm expresia „Ați apăsat butonul”;
}

Să aducem expresia mai aproape de limbajul PHP folosind operatori condiționali:

dacă (buton apăsat) (
Este afișată fraza„Ai apăsat butonul”;
}
?>

Și acum scriem codul PHP însuși sub HTML:

if (isset ($_POST[ „dar” ]));
ecou „Ai apăsat butonul”;
}
?>

Dacă acest cod este tradus din PHP în rusă, va arăta astfel:

Dacă (set(metoda formularului POST [ butoane numite „dar”])){
Este afișată fraza „Ai apăsat butonul”;
}

Și dacă este complet în rusă, atunci

Dacă datele formularului au fost trimise folosind metoda POST când un buton a fost numit, dar a fost făcut clic,
apoi utilizatorul va vedea expresia „Ați făcut clic pe buton”.

Cam așa ar trebui să gândească un programator când scrie un script.

Aveți grijă ca toate ghilimele și parantezele să fie închise.

Scriem un scenariu pentru două butoane.

Scriptul va fi astfel:

Dacă apăsăm butonul 1,
Apoi vedem mesajul „Ați apăsat butonul 1”.
Sau, dacă am apăsat butonul 2,
Apoi vom vedea mesajul „Ați apăsat butonul 2”.




charset="utf-8" >
<span>Script pentru două butoane</span>


action="" method="POST" >





if (isset ($_POST [ "dar1" ]))(
ecou „Ai apăsat butonul 1”;
}
elseif(isset($_POST["dar2"]))(
ecou „Ai apăsat butonul 2”;
}
?>

Cred că ți-ai dat seama de butoane. Deci puteți scrie scripturi pentru trei butoane și pentru 10...

Scriem un script de salut pe nume.

Scenariul este acesta: utilizatorul își introduce numele în fereastră, iar când dă clic pe buton, apare o frază de salut.

Deci, mai întâi scriem formularul HTML.




charset="utf-8" >
<span>dacă altfel construi</span>


action="" method="POST" >

Numele dumneavoastră


type ="submit" name ="submit" value ="Submit" >!}




Mai întâi trebuie să creămь variabila $ Nume, în el vom plasa numele pe care îl va introduce utilizatorul.

$nume=$_POST [ "nume" ] ;

Și apoi sub forma HTML vom scrie o construcție care ne este deja familiară, folosind operator condițional dacă:

$nume=$_POST [„nume”];
if (isset ($_POST ["trimite" ]))(
echo "Bună ziua" ." " .$nume ;
}
?>

Scriem un script de autorizare simplu.

Să presupunem că avem doar doi utilizatori: Vasya și Petya. Sistemul nu cunoaște alți utilizatori.

Dacă introducem numele Vasya,
atunci va apărea expresia „Bună ziua Vasya”.
Sau, dacă introducem numele Petya,
atunci va apărea expresia „Bună ziua Petya”.
În caz contrar, dacă nu introducem nimic sau introducem un alt nume,
apoi va apărea expresia „Bună ziua oaspete”.




charset="utf-8" >
<span>Autorizare simplă</span>


action="" method="POST" >

Numele dumneavoastră


tip ="trimite" nume ="trimite" valoare ="Login" >!}





$nume = $_POST [„nume”];
dacă ($nume = = „Vasya” )(
echo "Bună ziua" ." " .$nume;
}
elseif ($nume = = "Petya" )(
echo "Bună ziua" ." " .$nume ;
}
altceva(
echo "Bună ziua oaspete";
}
?>

Și, în sfârșit, amintiți-vă în același timp:

Script de salut în funcție de ora din zi.

$hour = (int)strftime ("%H" );
$binevenit = " "; // Inițializați variabila de salut
dacă ($oră > 0 && $oră<= 6 )
$welcome = "Noapte buna!" ;
elseif ($oră > 6 && $oră<= 12 )
$welcome = "Bună dimineața!" ;
elseif ($oră > 12 && $oră<= 18 )
$welcome = "Bună ziua!" ;
elseif ($oră > 18 && $oră<= 23 )
$welcome = "Bună seara!" ;
else $welcome = "Bună seara!" ;
$header = „$welcome Bine ați venit pe site-ul nostru!”;
?>



charset="utf-8">
<span>Timp


<?php echo $header ?>



Deci, puteți veni cu multe scenarii folosind declarații condiționale dacă, altfel, elseif. Așadar, exersați, vă sfătuiesc să introduceți codul manual în loc să îl copiați, astfel veți stăpâni rapid limbajul PHP.

Lecția va acoperi instrucțiuni php condiționale: 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. 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; )

  • Sintaxa scurtată poate nu conțin părți ale clauzei else și nu conțin o 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, clauza else trebuie să fie ultima î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: Afișați traducerea culorilor din engleză în rusă, verificând valoarea variabilei (în care este atribuită culoarea: $a="blue")


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

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.

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 limbajului PHP va considera variabila dintre paranteze ca fiind o regulă de minciună:

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: este dată o variabilă a cu o 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) ( echo "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 ;

Unele surse spun că declarația de selecție if else este o declarație de sine stătătoare. Dar acest lucru nu este adevărat, if else este doar o formă de scriere a declarației de selecție if. Declarația if else permite programatorului să definească o acțiune când condiția este adevărată și o acțiune alternativă când condiția este falsă. În timp ce dacă ți se permite să stabilești acțiunea dacă condiția este adevărată.

Sintaxa pentru scrierea instrucțiunii de selecție if else este:

If (/*condiția de verificat*/) ( /*corpul operatorului de selecție 1*/; ) else ( /*corpul operatorului de selecție 2*/; )

Se citește astfel: „Dacă condiția testată este adevărată, atunci selectați corpul declarației 1, în caz contrar (adică condiția testată este falsă) este îndeplinită selectați corpul declarației 2". Acordați atenție modului în care este scrisă declarația if else. Cuvântul alt este deplasat în mod special spre dreapta, astfel încât codul programului să fie clar și convenabil de citit.

Să ne uităm la problema din subiectul anterior, folosind if else . Permiteți-mi să vă reamintesc starea problemei: „Având în vedere două numere, trebuie să le comparați”.

// if_else.cpp: Definește punctul de intrare pentru aplicația consolă. #include „stdafx.h” #include folosind namespace std; int main(int argc, char* argv) ( int a, b; cout<< "Vvedite pervoe chislo: "; cin >>a; cout<< "Vvedite vtoroe chislo: "; cin >>b; dacă (a >= b) // dacă a este mai mare sau egal cu b, atunci ( cout<< a << " >= " << b << endl; } else // иначе { cout << a << " <= " << b << endl; } system("pause"); return 0; }

În acest cod ne intereseazărândurile 14-20. Aceste rânduri se citesc astfel: dacă A (primul număr) mai mare sau egal cu b (al doilea număr), apoi executați instrucțiunea de ieșire înlinia 16

Cout<< a << " >= " << b << endl;

în caz contrar, executați instrucțiunea de ieșire în linia 19

Cout<< a << " <= " << b << endl;

În acest exemplu folosim operatorii de relație >= și<= . Условие перехода не совсем правильно, так как условие будет ложно только в том случае, если первое число будет меньше второго, во всех остальных случаях условие истинно. Значит, linia 19 trebuie sa scrii asa

Cout<< a << " < " << b << endl; // в кавычках записать не меньше или равно, а просто меньше.

Și așa a funcționat programul (vezi Figura 1).

Vvedite pervoe chislo: 15 Vvedite vtoroe chislo: -4 15 >= -4 Pentru a continua, apăsați orice tastă. . .

Figura 1 - Declarație de selecție dacă altfel

Permiteți-mi să vă arăt un alt exemplu de utilizare a instrucțiunilor de selecție if else (așa-numitele instrucțiuni imbricate if else pentru selecție multiplă).

Sarcina:
Creați un algoritm care găsește valoarea lui y, dacă y=x, pentru x<0; у=0, при 0<=х<30; у=х 2 , при х>=30;

// inif_else.cpp: Definește punctul de intrare pentru aplicația consolă. #include „stdafx.h” #include folosind namespace std; int main(int argc, char* argv) ( int x, y; cout<< "Vvedite x: "; cin >>x; dacă (x< 0) { y = x; // выполняется, если х меньше нуля } else { if ((x >= 0) && (x< 30)) { y = 0; // выполняется, если х больше либо равно нуля и меньше 30 } else { if (x >= 30) ( y = x * x; // executat dacă x este mai mare sau egal cu 30 ) ) ) cout<< "y=" << y << endl; system("pause"); return 0; }

Există trei cazuri posibile în această problemă:
primul caz: x< 0 ;
Al doilea caz: x se află în intervalul de la 0 (inclusiv 0) la 30;
Al treilea caz: x este mai mare sau egal cu 30.

Observați inovația!! ÎN Linia 17 o astfel de intrare: dacă ((x >= 0) && (x< 30)) , Am folosit simboluri && - acesta este . Operație logică ȘI&& este necesar pentru a combina mai multe condiții simple într-o singură condiție compusă. În cazul nostru, este necesar să verificăm adevărul a două condiții: prima – x ​​>= 0, a doua – x< 30 . Все проверяемое условие будет истинно, если истинны два простых условия. В математике правильной записью считается такая запись: 0 <= x < 30 , а в С++ правильной записью считается вот такая запись: (x >= 0) && (x< 30) или такая 0 <= x && x < 30 . Кстати круглые скобочки () && () не обязательны, так как условия простые, но для уверенности, я прописываю, всегда, данные скобочки и вам советую.

Analiza unui caz particular:

Să presupunem că utilizatorul a introdus numărul 31. Începând de la rândurile 12, condițiile sunt verificate. Se citește astfel: „Dacă x (31 în cazul nostru)< 0, то выполнить оператор в linia 14" Dar deoarece 31 > 0 condiția este falsă, trecem la cuvântul else (altfel) linia 15. Apoi, verificăm dacă numărul 31 este inclus în intervalul specificat. Se citește astfel: dacă x>=0 și x<30apoi executați instrucțiunea de pe linia 19 . Dar, deoarece numărul 31 nu este inclus în intervalul dat, condiția este falsă. Detalii linia 17: programul va verifica mai întâi prima condiție simplă x >= 0 - este adevărată, iar dacă prima este adevărată, atunci programul va proceda la verificarea a doua condiție simplă x< 30 – оно ложно. Следовательно всё составное условие ложно, ведь в составном условии у нас используется логическая операция && , а это значит, что все составное условие истинно только в том случае, когда истинны оба простых условия. Переходим к else (иначе), здесь у нас последний if , (linia 22). Testul este x >= 30. Se citește astfel: Dacă x >= 30, atunci executați instrucțiunea situată pe linia 24 . În cele din urmă, condiția este adevărată, deci afirmația în linia 24. ȘI linia 28 imprimă valoarea rezultată. Ei bine, asta este, ne-am uitat la program până în cel mai mic detaliu. Rezultatul programului dacă utilizatorul a introdus numărul 31 (vezi Figura 2)

Ca și alte limbaje de programare, PHP are instrucțiuni de selecție. Există trei tipuri în total:

  • declarație condiționată if...else ;
  • comutator comutator;
  • operație condiționată (? );

Este de remarcat faptul că în PHP nu există un salt necondiționat pe eticheta goto, dar, în ciuda acestui fapt, cuvântul cheie goto este rezervat.

În această lecție ne vom uita la declarația if...else și la operațiunile condiționate, iar lecția următoare va acoperi comutatorul.

Sintaxa if...else este aceeași ca în C:

//dacă uslovie este adevărat, atunci ajungem aici operator1; //în cazul unui operator, operator2; ...) altfel // optional {//dacă uslovie este fals, atunci mergem aici operator3; //în cazul unui operator, operator4; // bretele sunt opționale ... } ?>

Note:

  • else nu este o parte obligatorie, dar este cel mai des folosit deoarece Logica o cere.
  • După cum s-a menționat în comentariile codului, acoladele () nu sunt necesare dacă avem o singură declarație. Deoarece condiția poate fi adevărată (1) sau falsă (0), se vor executa fie operator1, operator2 etc., fie operator3, operator4 etc.

Iată un exemplu specific în PHP:

//Setați valorile variabilelor$num1 = 10; $num2 = 7; dacă ($num1 > $num2) ( //condiția este adevărată, ceea ce înseamnă că ajungem aici echo „Condiția este adevărată deoarece 10 > 7
"; $num1+=$num2; // adăugăm variabila $num2 la $num1; ecou "\$num1 = ". $num1; // rezultatul va fi 17) else echo „Din moment ce condiția este pozitivă, nu ajungem aici”; // Există o singură instrucțiune, deci nu există acolade ?>

Iată un exemplu în care clauza else este omisă și condiția constă din două condiții:

6) ecou „Condițiile sunt adevărate”; //Un alt exemplu: if ($num1 == 10 || $num2 >= 100) echo "Condițiile sunt adevărate"; //În toate cazurile condițiile sunt adevărate ?>

Imbricate dacă sunt condiții

Ca și în limbajul C, PHP permite utilizarea condițiilor imbricate:

//dacă uslovie1 și uslovie2 sunt adevărate, atunci ajungem aici) altfel ( //dacă uslovie1 este adevărat și uslovie2 este fals, atunci ajungem aici) altfel ( //dacă uslovie1 și uslovie2 sunt false, atunci ajungem aici } ?>

Puteți scrie câte multe dacă se cuibăresc, dacă doriți, dar astfel de construcții sunt foarte complexe, așa că va fi destul de greu de înțeles atunci când depanați un program. Iată un exemplu cu instrucțiuni if ​​imbricate:

// rezultatul acestui script va fi un mesaj: // $flag1 este adevărat și $flag2 este fals ?>

Condiții imbricate folosind if...elseif...else

PHP are capacitatea de a imbrica instrucțiuni condiționale folosind schema: if...elseif...else . Acest lucru este mult mai convenabil decât crearea inițială a unui set de condiții și apoi adăugarea unui set de altele. Sintaxa constructului if...elseif...else este următoarea:

Într-o astfel de construcție, else se poate scrie o singură dată, dar elseif se poate scrie de câte ori doriți. De asemenea, se consideră că designul de mai sus este inferior comutatorului.

Folosind operatorul endif

Aproape orice motor creat în PHP folosește operatorul endif. Construcția acestui operator este prezentată mai jos:

... etichete html și conținut; ... ... etichete html și conținut; ...

Merită să acordați atenție confortului acestui design decât dacă scoatem tot conținutul prin ecou. Nu uitați să puneți un colon după afecțiune!

Utilizarea operatorilor condiționali (?)

Utilizarea operatorilor condiționali nu este o abordare comună nu numai în PHP, ci și în alte limbaje similare, dar nu trebuie uitate. Sintaxa operației condiționate este următoarea:

Mai întâi vine o condiție. Dacă este adevărat, atunci operator_1 este executat, în caz contrar operator_2 este executat. Cred că construcția nu este foarte clară, așa că merită să dați câteva exemple PHP pentru a le clarifica. De exemplu, folosind un operator condiționat, puteți implementa cu ușurință modulul unui număr:

Operațiile condiționate pot fi avantajoase de utilizat în unele expresii scurte în care trebuie să modificați valoarea unei singure variabile în funcție de o condiție.


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 că logica operațiunii condiționate este clară. Acum să ne uităm la un exemplu.

$a = 5;
$b = 25;

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

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

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

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

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

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

Dacă ($ vârstă > 17)(
echo "Asta este! Pot face ce vreau! Am deja $age!";
}
Un exemplu destul de frumos de notare scurtă a unei operații condiționate. 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!


 
Articole De subiect:
De ce cad mugurii de begonie și cum să rezolvi problema?
De ce cad mugurii de begonie și cum să rezolvi problema Condițiile de întreținere necorespunzătoare sunt cel mai frecvent motiv pentru care mugurii de begonie se usucă și cad. Habitatul natural al acestei plante sunt pădurile tropicale tropicale și subtropicalele și domestice
Stromantha: grija pentru o frumusete capricioasa
Planta exotică stromanthus a venit la noi din tropicele Americii de Sud și crește în nivelul inferior al pădurilor tropicale amazoniene. Planta erbacee aparține familiei săgeții și atrage atenția datorită frunzelor sale neobișnuite ca culoare și formă. În timpul zilei sunt întotdeauna
Cactuși, metode de înmulțire: semințe, butași, frunze, lăstari
Înmulțirea prin semințe este cea mai interesantă secțiune a lucrului cu cactusi. Toate procesele de la fertilizare până la formarea unei plante adulte au loc sub ochii cercetătorului. Semințele de cactusi pot fi semănate în martie, aprilie și mai, iar ale speciilor sud-americane - în august
Îngrijirea mirtului la domiciliu, tăiere, replantare și înmulțire
Myrtle este o plantă veșnic verde cultivată ca arbust și ca un copac mic. Arborele de mir este foarte popular ca cadou pentru mireasă, simbolizând o căsnicie reușită. Această plantă nu este atât de ușor de îngrijit, dar merită.Informații generaleMyrtle a fost de mult timp