Ar PHP įmanoma sudėtinga logika? Operacijos PHP

Pamoka apims sąlyginius php teiginius: if sakinį ir jungiklio teiginį

PHP sąlyginius teiginius vaizduoja trys pagrindinės konstrukcijos:

  • būklės operatorius jeigu,
  • jungiklio operatorius jungiklis
  • Ir trijų dalių operatorius.

Pažvelkime į kiekvieną iš jų atidžiau.

PHP if teiginys

3.1 pav. Sąlyginis IF teiginys, trumpoji versija


Ryžiai. 3.2. IF ELSE Sąlyginio teiginio sintaksė


Ryžiai. 3.3. Visa sąlyginio sakinio IF elseif sintaksė

Apibendrinkime:

Visa sintaksė:

if (sąlyga) ( // jei sąlyga yra tikroji operatorius1; operator22; ) elseif(condition) ( operator1; ... ) else ( // jei sąlyga klaidinga operatorius1; operator22; )

  • Sutrumpinta sintaksė gali Jame nėra elemento else dalių ir papildomos sąlygos elseif
  • Vietoj funkcijos žodžio elseif galite parašyti else if (atskirai)
  • Viename if konstrukcijoje gali būti keli elifai. Bus vykdoma pirmoji elseif išraiška, lygi TRUE.
  • Jei yra alternatyvi sąlyga elseif, kita sąlyga sintaksėje turi būti paskutinė.

Sąlyginiame sakinyje galima naudoti dvitaškį: vietoj garbanotų petnešų. Šiuo atveju teiginys baigiasi pagalbiniu žodžiu endif

Ryžiai. 3.4. Sąlyginis teiginys If ir Endif php

Pavyzdys:

if($x > $y): echo $x." yra didesnis nei ".$y; elseif($x == $y): // kai naudojate ":", negalite rašyti atskirai kitaip, jei echo $x." lygus ".$y; else: echo $x." not > and not = ".$y; endifas;

Svarbu: Kai konstrukcijoje naudojate dvitaškį vietoj garbanotų petnešėlių, elseif negalima parašyti dviem žodžiais!

Loginės operacijos esant sąlygai

Jei sąlygoje skliausteliuose gali būti šios operacijos:

Pavyzdys: patikrinkite skaitinio kintamojo reikšmę: jei ji mažesnė arba lygi 10, parodykite pranešimą "skaičius mažesnis arba lygus 10", kitu atveju parodykite pranešimą "skaičius didesnis nei 10"


Sprendimas:

$skaičius=15; if ($ numeris<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

PHP kodo blokai gali būti sugadinti, pažvelkime į pavyzdį:

Pavyzdys: Rodyti html kodą ekrane "a lygus 4", jei kintamasis $a tikrai lygus 4


1 sprendimas:
1 2 3 4

2 Sprendimas:

1 2 3 A lygus 4

A lygus 4

php darbas 3_1: Rodyti spalvų vertimą iš anglų kalbos į rusų kalbą, tikrinant kintamojo reikšmę (kurioje spalva priskirta: $a="mėlyna")


php darbas 3_2: Raskite daugiausiai trijų skaičių

Lyginimo operacijos ir melo taisyklė

Jei konstrukcija skliausteliuose turi turėti loginę išraišką arba kintamąjį, kuris yra vertinamas logikos algebros požiūriu, grąžinantis reikšmes arba teisingas, arba klaidingas

Tie. vienas kintamasis gali veikti kaip sąlyga. Pažiūrėkime į pavyzdį:

1 2 3 4 $a = 1; if ($a) ( aidas $a; )

$a=1; if ($a) ( aidas $a; )

Pavyzdyje PHP kalbos vertėjas laikys skliausteliuose esantį kintamąjį melo taisykle:

MELO taisyklė arba tai, kas laikoma klaidinga:

  • logiška Netiesa
  • visas nulis ( 0 )
  • tikras nulis ( 0.0 )
  • tuščia eilutė ir styga «0»
  • masyvas be elementų
  • objektas be kintamųjų
  • specialus tipas NULL

Taigi nagrinėjamame pavyzdyje kintamasis $a yra lygus vienetui, atitinkamai sąlyga bus teisinga ir operatorius aido $a; parodys kintamojo reikšmę.

php darbas 3_3: pateikiamas kintamasis a su eilutės reikšme. Jei a yra lygus pavadinimui, spausdinkite "Labas, vardu!", jei a lygi tuščiai reikšmei, tada išvestis "Sveikas, nepažįstamasis!"

Sąlyginiame operatoriuje loginės konstrukcijos IR ARBA ir NE

  1. Kartais reikia numatyti kelių sąlygų įvykdymą vienu metu. Tada sąlygos derinamos loginis operatorius AND — && :
  2. $a=1; if ($a>0 || $a>1) ( aidas "a > 0 arba a > 1"; )

  3. Norėdami nurodyti, ar sąlyga klaidinga, naudokite loginis operatorius NE — ! :
  4. 1 2 3 4 $a = 1; if (! ($a< 0 ) ) { echo "a не < 0" ; }

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

Perjungti operatorių PHP

Jungiklio operatorius arba „jungiklis“ pakeičia kelias iš eilės esančias if konstrukcijas. Tai darydamas jis lygina vieną kintamąjį su keliomis reikšmėmis. Taigi tai yra patogiausia priemonė daugiašakiai veiklai organizuoti.

Sintaksė:

1 2 3 4 5 6 7 8 9 10 jungiklis ($kintamasis) (atvejis "reikšmė1": operator1

switch($kintamasis)(atvejis "reikšmė1": operator1; pertrauka; atvejis "reikšmė2": operatorius2; pertrauka; atvejis "reikšmė3": operatorius3; pertrauka; )

  • Operatorius gali patikrinti ir eilutės reikšmes (tada jos nurodomos kabutėse), ir skaitines reikšmes (be kabučių).
  • Konstrukcijoje būtinas pertraukos pareiškimas. Jis išeina iš konstrukcijos, jei sąlyga yra teisinga ir yra įvykdytas sąlygą atitinkantis operatorius. Be pertraukos bus vykdomi visi pareiškimai, nepaisant jų teisingumo.

Ryžiai. 3.5. Sąlyginio perjungimo pareiškimas


Pavyzdys: pateikiamas masyvas su pilnais vyriškais vardais. Patikrinkite pirmąjį masyvo elementą ir, priklausomai nuo pavadinimo, parodykite sveikinimą su trumpu pavadinimu.


Sprendimas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $vardai = masyvas ("Ivanas" , "Petras" , "Semjonas" ) ; jungiklis ($vardai [ 0 ] ) ( dėklas "Petras" : aidas "Sveika, Petya!" ; pertrauka ; dėklas "Ivanas" : aidas "Sveika, Vanya!" ; pertrauka ; dėklas "Semjonas" : aidas "Sveika, Vanya! " ; break ; default : echo "Sveiki, $vardai!"; pertrauka ; )

$vardai=array("Ivanas","Petras","Semjonas"); switch($names)( dėklas "Petras": aidas "Sveika, Petya!"; pertrauka; raidė "Ivan": aidas "Sveika, Vanya!"; pertrauka; dėklas "Semjonas": aidas "Sveika, Vanya!"; pertrauka ; numatytasis: echo "Sveiki, $vardai!"; pertrauka; )

php darbas 3_4:

  • Sukurkite $day kintamąjį ir priskirkite jam savavališką skaitinę reikšmę
  • Naudodami jungiklio konstrukciją, atspausdinkite frazę "Tai darbo diena", jei $day kintamojo reikšmė patenka į skaičių diapazoną nuo 1 iki 5 (imtinai)
  • Atspausdinkite frazę "Tai laisva diena", jei kintamojo $day reikšmė lygi skaičiams 6 arba 7
  • Atspausdinkite frazę "Nežinoma diena", jei $day kintamojo reikšmė nepatenka į skaičių diapazoną nuo 1 iki 7 (imtinai)

Užpildykite kodą:

1 2 3 4 5 6 7 8 9 10 11 12 ... jungiklis (... ) ( 1 atvejis : 2 atvejis : ... aidas "Tai darbo diena"; pertrauka ; 6 atvejis : ... numatytasis : ... )

Switch(...)( 1 atvejis: 2 atvejis: ... aidas "Tai darbo diena"; pertrauka; 6 atvejis: ... numatytasis: ... )

PHP trijų dalių operatorius

Trečias operatorius, t.y. su trimis operandais, turi gana paprastą sintaksę, kurios kairėje nuo ? parašyta sąlyga, o dešinėje yra du operatoriai, atskirti ženklu: , kairėje nuo ženklo operatorius vykdomas, jei sąlyga teisinga, ir dešinėje nuo ženklo: operatorius vykdomas, jei sąlyga yra klaidinga.

būklė? operator1 : operator2 ;

Sveiki, mieli pradedantieji programuotojai. Toliau tyrinėkime elementus, kuriuos sudaro.

Šiame straipsnyje mes sužinosime, kas yra php operatoriai. Tiesą sakant, su kai kuriais iš jų esame pažįstami beveik nuo vaikystės, bet žinome tik kaip ženklus (+, -, =, !, ?).

php jie visi vadinami operatoriais, o tai yra gana logiška, nes jie atlieka konkretų veiksmą arba operaciją.

Netgi galima sakyti, kad visi spausdinami simboliai, kurie nėra raidės ar skaičiai, yra PHP operatoriai. Bet tai dar ne viskas, nes yra operatorių, susidedančių iš raidžių.

Pradėkime eilės tvarka.

Aritmetiniai operatoriai

Aritmetiniai operatoriai naudojami operacijoms su skaičiais atlikti.

+ yra pridėjimo operatorius;
— — atimties operatorius;
/ - skyriaus operatorius;
* — daugybos operatorius;
% yra operatorius, skirtas dalijant likutį gauti;
++ — operatorius didinant vienu (prieauga);
— — — sumažinimas vienu operatoriumi (sumažinimas)

Rašant tarpas dažniausiai dedamas prieš ir po operatoriaus. Tai daroma tik tam, kad būtų lengviau perskaityti kodą, nors ši vieta nieko nedaro, ir jei norite, galite išsiversti be jos.

Sudėtingos išraiškos sudaromos pagal aritmetikoje priimtas taisykles, tai yra, daugyba ir dalyba turi pirmenybę prieš sudėjimą ir atimtį, o kai reiškinyje yra abu, pastarieji rašomi skliausteliuose.

aidas (6 + 7) * (7 + 8); // 195
?>

Atliekant veiksmą dalijant sveikąjį skaičių iš sveikojo skaičiaus, gavus liekaną, rezultatas automatiškai paverčiamas realiuoju skaičiumi (slankiojo kablelio skaičius).

aidas 8/3; //2.66666666666
?>

Atspausdintų trupmeninio skaičiaus skaitmenų skaičius priklauso nuo reikšmės, nustatytos tikslumo direktyvoje, esančioje php.ini faile. Paprastai tai yra 12 simbolių, neskaičiuojant laikotarpio.

Operatorius % dažniausiai naudojamas norint nustatyti, ar vienas skaičius dalijasi iš kito be liekanos, ar ne.

aidas 53328 % 4 ; //0
?>

Iškviečiamos operacijos su aritmetiniais operatoriais, išskyrus didinimą ir mažinimą dvejetainis, nes jie apima du operandus (terminas + terminas, dividendas / daliklis ir kt.)

Vadinami didinimo ir mažinimo veiksmai unarinis, nes jie apima vieną operandą. Ar yra daugiau sąlyginis veikimas, kuriame yra trys operandai.

Prieaugio (++) ir mažinimo (- -) operatoriai taikomi tik kintamiesiems.

Kintamojo tipo sveikasis skaičius (sveiki skaičiai)

$kitas = 3 ;
echo +$kitas; // 4
?>

Kintamojo tipo eilutė

$kitas = "abc";
echo $kitas; // abd
?>

Raidė "d" spausdinama vietoj raidės "c", nes ji yra šalia abėcėlės ir mes padidinome kintamojo reikšmę vienu.

Pavyzdžiuose rodomi veiksmai su didėjimu ir tokiu pat būdu galite atlikti veiksmus su mažėjimu.

Bitiniai operatoriai

Bitiniai operatoriai yra skirti dirbti su dvejetainiais duomenimis. Jei kas nežino, kas tai yra, aš paaiškinsiu. Dvejetainiai skaičiai yra tokie skaičiai kaip 1001000011100000111000.

Kadangi tokie duomenys beveik niekada nenaudojami kuriant svetaines, plačiau prie jų nesigilinsime. Aš tiesiog parodysiu, kaip jie atrodo, kad susidūrę su tokiais simboliais galėtumėte įsivaizduoti, su kuo susiduriate.

& - bitinis ryšys IR (ir);
~ — bitinis neigimas (ne);
| — bitinė jungtis ARBA (arba);
^ — bitinis eliminavimas ARBA (xor);
<< — сдвиг влево битового значения операнда;
>> — perkelti į dešinę operando bitų reikšmę;

Labai tikėtina, kad susidursite su šiais operatoriais, nes dvejetainiai duomenys yra plačiai naudojami kuriant kompiuterinės grafikos programas. Tačiau norėdami juos ištirti, jei kam to prireiks, jie turės išklausyti atskirą kursą apie kitą šaltinį.

Palyginimo operatoriai

Palyginimo operatoriai yra loginiai operatoriai ir naudojami kintamiesiems palyginti. Masyvai ir objektai negali būti lyginami naudojant juos.

> - operatorius didesnis nei;
=> - didesnis už arba lygus operatorius;
< — оператор меньше;
<= — оператор меньше или равно;
== — lygybės operatorius;
!= — nelygybės operatorius;
=== — ekvivalentiškumo operatorius (kintamojo reikšmė ir tipas yra vienodi);
!== — neekvivalentiškumo operatorius;

Dėl palyginimo ekrane rodoma arba viena, kuri atitinka teisingą (tiesa), arba tuščia eilutė, kuri atitinka klaidingą (klaidinga).

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

Taigi patys palyginimo operatoriai beveik niekada nenaudojami. Jų pagrindinis tikslas yra dirbti kartu su if teiginiu.

Sąlyginiai teiginiai if, else, elseif.

Sąlyginiai operatoriai taip vadinami, nes jie skirti patikrinti tam tikrą sąlygą, priklausomai nuo to, koks veiksmas atliekamas.

Jei sakinys naudoja loginį kintamąjį arba išraišką kaip argumentą. Jei sąlyga teisinga, rodomas rezultatas, jei netiesa, rodoma tuščia eilutė.



if ($kitas< $nexT)
{
aidas „Krutulų tikimybė“; // Galimi krituliai
}
?>

$next = "Oro drėgnumas 80%";
$nexT = "Oro drėgnumas 90%";
jei ($next > $nexT)
{
aidas „Krutulų tikimybė“; // Spausdinti tuščią eilutę
}
?>

Jei programai reikia nurodyti du veiksmus, iš kurių vienas bus atliktas, jei reikšmė teisinga, o kitas, jei reikšmė neteisinga, tada kartu su if teiginiu naudojamas else teiginys

$next = "Oro drėgnumas 80%";
$nexT = "Oro drėgnumas 90%";
jei ($next > $nexT)
{
aidas „Krutulų tikimybė“;
}
Kitas
{
aidas „Jokių kritulių nenumatoma“;
}
?>

Tokiu atveju bus rodoma „Krutulų nenumatoma“, o jei posakyje ženklą „Daugiau“ pakeisite į „Mažiau“, bus rodoma „Kituliai galimi“. Taip sąlyginiai operatoriai patikrina sąlygą ir pagal ją pateikia teisingą rezultatą.

Labai dažnai reikia nustatyti daugiau nei dvi sąlygas, o tada, norint jas patikrinti nuosekliai, naudojamas operatorius elseif.



jei ($next > $nexT)
{
aidas „matau“;
}
elseif ($ kitas<= $nexT)
{
aidas "Sniegas";
}
elseif ($next >= $nexT)
{
aidas „Lietus“;
}
elseif ($kitas == $kitasT)
{
aidas „Sausra“;
}
Kitas
{
aidas „Krutulų tikimybė“;
}
?>

Ši programa išves „Snow“. Jei neatitiko nė viena iš sąlygų, bus rodoma „Krulių tikimybė“.

Jei sakinyje gali būti tiek elifų blokų, kiek norite, bet tik vieną kitą teiginį.

Leidžiama ir alternatyvi įrašymo parinktis – be garbanotų petnešų. Šiuo atveju if, else, elseif teiginių eilutės baigiasi dvitaškiu, o visa konstrukcija baigiasi raktiniu žodžiu (operatorius) endif.

$next = "Oro drėgnumas 50%";
$nexT = "Oro drėgnumas 60%";
if ($kitas<= $nexT):

aidas "Sniegas";

elseif ($next >= $nexT):

aidas „Lietus“;

elseif ($kitas == $kitasT):

aidas „Sausra“;

Kitas:

aidas „Krutulų tikimybė“;
endif ;
?>

Loginiai operatoriai

Loginiai operatoriai yra panašūs į bitų operatorius. Skirtumas tarp jų yra tas, kad pirmieji veikia su loginiais kintamaisiais, o antrieji - su skaičiais.

Loginiai operatoriai naudojami tais atvejais, kai reikia sujungti kelias sąlygas, o tai sumažins if teiginių skaičių, o tai savo ruožtu sumažina klaidų tikimybę kode.

&& - jungiamasis junginys IR;
ir - taip pat IR, bet su mažesniu prioritetu;
|| - atskiriamoji jungtis ARBA;
arba - taip pat ARBA, bet su mažesniu prioritetu;
xor - išskirtinis ARBA;
! - neigimas;

Žemesnis prioritetas reiškia, kad jei yra abu operatoriai, pirmiausia vykdomas tas, kurio prioritetas yra didesnis.

Ateityje, naudodamiesi sudėtingesnių scenarijų pavyzdžiais, mes išsamiau aptarsime loginius operatorius.

Priskyrimo operatorius

Priskyrimo operatorius = kairiajam operandui priskiria dešiniojo operando reikšmę.

$next = "Sveiki"
aidas "Labas" // Sveiki
?>

Operatoriaus taškas

Taško operatorius atskiria sveikąją skaičiaus dalį nuo trupmeninės dalies ir sujungia kelias eilutes bei skaičių į vieną visą eilutę.

$kitas = 22 ;
echo "Šiandien po" .$kitas. „numatomas šalnas“; // Šiandien po 22 numatomos šalnos
?>

Skliaustų operatorius

Kaip ir matematikoje, skliaustų operatorius pirmenybę teikia juose esančiam veiksmui.

Pirmiausia vykdomi skliausteliuose esantys duomenys, o tada visi kiti.

Garbanotų breketų operatorė

Yra trys garbanotų petnešų įdėjimo į PHP būdai ar net stiliai.

1. BSD stilius – skliaustai išlygiuoti į kairę.

jei ($kitas)
{

}

2. GNU stilius – skliaustai išlygiuoti įtrauka nuo kairiojo krašto

jei ($kitas)
{
aidas „Sveiki, mieli pradedantieji programuotojai“;
}

3. K&R stilius – operatoriaus eilutėje atsidaro skliaustai

jei ($kitas)(
aidas „Sveiki, mieli pradedantieji programuotojai“;
}

Nuo pat pradžių reikia pasirinkti vieną iš stilių ir ateityje rašant scenarijus naudoti tik jį. Be to, visiškai nesvarbu, koks stilius jums labiau patinka. Svarbu, kad ji būtų vienoda visoje programoje.

Manau kol kas užteks. Iš esmės operatoriais gali būti ne tik ženklai, bet ir funkcijos bei kiti elementai, todėl juos visus išvardyti labai sunku ir nėra prasmės.

Pakanka turėti idėją apie pagrindinius pagrindus. O visa kita analizuosime naudodamiesi praktiniais pavyzdžiais.

Airis ašaromis klaidžioja po Šeremetjevo oro uostą. Viena iš darbuotojų nusprendė užjausti:
– Ar pasiilgai tėvynės?
- Visai ne. Ką tik pamečiau visą bagažą
- Kaip tai galėjo atsitikti?
- Aš pats nesuprantu. Panašu, kad kištuką įkišau tinkamai

Taigi, mes jau žinome, kaip vykdyti tam tikrą sąlygą atitinkantį kodą. Tačiau iki šios akimirkos galėjo būti tik viena sąlyga. Ką daryti, jei kodas turi būti vykdomas, jei vienu metu tenkinamos kelios sąlygos?

Norėdami išspręsti šią problemą, yra loginiai operatoriai:

= 5 ir& $ kaina<= 10) echo "Это число находится между 5 и 10"; ?>

&& operatorius, taip pat vadinamas logiška IR, konvertuoja reikšmes kairėje ir dešinėje į Būlio tipą, o tada pati grąžina Būlio reikšmę: true, jei kairė ir dešinė yra teisingos, arba false, jei viena iš sąlygų yra klaidinga.

Kitaip tariant, jei abi sąlygos yra teisingos, tada && operatorius grąžina true. Tai atspindi operatoriaus pavadinimas.

Operatorius || arba logiškas ARBA grąžina tiesa, kai yra bent viena iš dviejų sąlygų:

5 || 1 > 2) echo "Sąlyga įvykdyta."; ?>

Aukščiau pateiktame kode echo komanda bus vykdoma, nes viena iš sąlygų yra teisinga.

Visi PHP loginiai operatoriai

Tarp && ir ir operatorių, taip pat tarp || ir arba yra nedidelis skirtumas – vykdymo tvarka.

Kaip žinote, daugyba turi didesnį prioritetą nei sudėtis. Taigi, ir ir arba operatoriai turi mažesnį prioritetą nei priskyrimo operatorius =. Rezultatą galima pamatyti šiame pavyzdyje:

Keista, tiesa? Kadangi y = turi didesnį prioritetą, PHP interpretuos kodą taip:

($var = true) ir false;

Tie. pirmiausia nustato $var į true, o tada atlieka teisingą ir klaidingą operaciją, kuri yra beprasmė, nes neturi įtakos kintamojo reikšmei.

Žemiau yra lentelė su operatoriaus prioritetais. Kai kuriuos iš jų jau sutikote. Kuo aukščiau operatorius yra lentelėje, tuo didesnis jo prioritetas.

  • ++ -- ~ (int) (plūduriuoti) (eilutė) (masyvas) (objektas) (bool) @
  • * / %
  • + - .
  • < <= > >=
  • == != === !== <> <=>
  • ? : (trečias operatorius)
  • = += -= *= **= /= .= %= &= |= ^= <<= >>=

Dabar galime nustatyti, kad palyginimo operatorių (==, != ir kt.) pirmenybė yra didesnė nei loginių operatorių. Ši informacija mums bus naudinga atliekant užduotį.


Pagrindinis dalykas šio operatoriaus veikloje yra sąlyga. jei išvertus iš anglų kalbos reiškia Jeigu. Sąlyga priimama kaip argumentas (kas yra skliausteliuose). Sąlyga gali būti loginė išraiška arba loginis kintamasis. Paprasčiau tariant, posakio reikšmė bus tokia:

Jei (sąlyga) (
sąlyga įvykdyta, padarykite tai
}
Kitas
{
sąlyga neįvykdyta, darykite kitaip
}
Tikiuosi, kad sąlyginio veikimo logika aiški. Dabar pažiūrėkime į pavyzdį.

$a = 5;
$b = 25;

// Dabar dėmesio! Sąlyga: jei $b yra didesnis nei $a
// Ženklai > ir< , как и в математике, обозначают больше и меньше
if($b > $a)
{
// jei sąlyga įvykdyta, atlikite šį veiksmą
echo "$b yra didesnis nei $a";
}
Kitas
{
// jei nevykdoma, tai tai
echo "$a yra didesnis arba lygus $b";
}
?>
Demonstracija Atsisiųskite šaltinius
Dėl to scenarijus bus išvestas 25 daugiau nei 5. Pavyzdys gana paprastas. Tikiuosi viskas aišku. Dabar siūlau apsvarstyti sudėtingesnę situaciją, kai turi būti įvykdytos kelios sąlygos. Kiekviena nauja sąlyga bus po pagrindinės sąlygos jei ()- pagalbinis, kuris rašomas kaip kitaip, jei (). Galų gale viskas bus kaip įprasta Kitas.

Užduotis: Testavimas atliekamas mokykloje. Scenarijus turi skaičiuoti balą, žinant kiekvieno pažymio gavimo sąlygas ir patį mokinio balą. Pažiūrėkime, kaip tai parašyti, ir nepamirškite perskaityti komentaro.

$testas = 82; // tarkime, kad mokinys parašė testą su 82 taškais

// parašykite pirmąją sąlygą penkiems
if($test > 90)
{
// jei sąlyga įvykdyta, atlikite šį veiksmą.
aidas "Reitingas 5";
}
// && ženklas reiškia „ir, sąjunga“, kad sąlyga yra įvykdyta, jei abi yra teisingos
// tai yra balas mažesnis nei 91 ir didesnis nei 80, tada 4. Kitu atveju sąlygos skaitomos toliau
kitaip jei ($ testas< 91 && $test > 80)
{
aidas „Įvertinimas 4“;
}
kitaip jei ($ testas< 81 && $test > 70)
{
aidas "Reitingas 3";
}
Kitas
{
aidas „Turėtume dar kartą rašyti testą...“;
}
?>
Demonstracija Atsisiųskite šaltinius
Mūsų studentas, turintis laiko ir pailsėti, ir parašyti normalų testą, gauna įvertinimas 4! Tikiuosi veikimo principas aiškus.

Taip pat galima trumpai įrašyti sąlyginės operacijos operaciją, kai veiksmo reikia tik tada, kai sąlyga yra įvykdyta.

$amžius = 19; // kintamasis su amžiumi

Jei ($ amžius > 17) (
echo "Štai! Aš galiu daryti ką noriu! Aš jau $ amžiaus!";
}
Gana gražus trumpo sąlyginės operacijos žymėjimo pavyzdys. Kitas rašyti nebūtina.

Palyginimo operatoriai PHP

Sąlyginės operacijos veikimo principas yra aiškus. Tačiau, kaip suprantate, yra daug daugiau palyginimo būdų. Pažvelkime į toliau pateiktą lentelę su palyginimo operatoriais.

Pavadinimo rezultato pavyzdys
$a == $b lygus tiesa, jei $a lygus $b
$a === $b Identiškas True, jei $a yra lygus $b ir abu kintamieji yra to paties tipo
$a != $b Nelygus True, jei $a nelygus $b
$a === $b Netapatus True, jei $a nėra lygus $b ir abu tipai nėra vienodi
$a > $b Didesnis nei teisingas, jei $a yra didesnis nei $b
$a< $b Меньше чем True, если $a меньше, чем $b
$a >= $b Didesnis arba lygus True, jei $a yra didesnis arba lygus $b
$a<= $b Меньше или равно True, если $a меньше или равно $b
Dabar pažvelkime į operatorius su pavyzdžiais:

// priešingai įpročiui = reiškia reikšmės priskyrimą kintamajam, o == yra lygus
jei ($a == 5)(
echo "$a yra 5"; // išspausdins "5 lygus 5"
) Kitas (
echo "$a nelygu 5";
}

Jei ($a != 6)(
echo "$a nelygu 6"; // išspausdins "5 nelygu 6". Būtinas neigimo atveju
) Kitas (
echo "$a kažkaip lygu 6";
}

// su daugiau ir mažiau manau viskas aišku. Todėl pavyzdys yra sudėtingesnis
jei ($a<= 6){
echo "$a yra mažesnis arba lygus 6"; // išspausdins "5 yra mažesnis arba lygus 6"
) Kitas (
echo "$a yra didesnis nei 6";
}

PHP loginiai operatoriai

Būna atvejų, kai vienoje sąlygoje reikia lyginti ne vieną kintamąjį, o du ar daugiau iš karto. Tam yra loginiai operatoriai.

Pavadinimo rezultato pavyzdys
$a ir $b Loginis "ir" TRUE, jei ir $a, ir $b yra TRUE.
$a arba $b Loginis "arba" TRUE, jei $a arba $b yra TRUE.
$a xor $b Išskirtinis "arba" TRUE, jei $a arba $b yra TRUE, bet ne abu.
! $a TRUE neigimas, jei $a nėra TRUE.
$a && $b Loginis "ir" TRUE, jei ir $a, ir $b yra TRUE.
$a || $b Būlio reikšmė "arba" TRUE, jei $a arba $b yra TRUE.
Tą jau pastebėjome operacijoms Ir Ir arba ar yra papildomų operatorių? Tai daroma siekiant suteikti pirmenybę sudėtingoms palyginimo operacijoms. Lentelėje loginiai operatoriai pateikiami prioriteto tvarka: nuo mažiausio iki didžiausio, tai yra, pavyzdžiui, || turi didesnį prioritetą nei arba.

Eikime toliau į pavyzdžius

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

// sąlyga: jei 5 nėra lygus 6 (TRUE), o 6 nėra lygus 7 (TRUE)
jei ($a< 6 && $b != $c){
aidas "Tikrai taip!"; // išspausdins "Iš tiesų taip!" nes ABI sąlygos yra TIKROS
) Kitas (
aidas „Viena iš sąlygų netiesa“;
}

// sąlyga: jei 6 nėra lygus 6 (FALSE) ARBA 6 nėra lygus 7 (TRUE)
if ($b != 6 || $b != $c)(
aidas "Štai tiek!"; // parodys "Štai viskas!", nes bent VIENA iš sąlygų yra TEISINGA
) Kitas (
aidas „Abi sąlygos klaidingos“;
}

Trečias operatorius

Siūlau vėliau grįžti prie trijų dalių kodo klausimo. Negalėjau to nepaminėti, nes tai svarbus dizainas, kuris žymiai sumažina kodo dydį. Siūlau iš karto pažiūrėti kodą.

Kodo esmė:(būklė)? a reikšmė, jei teisinga: reikšmė a if false

Taigi sutrumpiname if teiginį. Tačiau ši operacija galioja tik priskiriant reikšmes kintamajam. Dabar pažvelkime į baigtą pavyzdį.

// Trinanio operatoriaus naudojimo pavyzdys
$settings = (tuščias($_POST["nustatymai"])) ? "Numatytasis" : $_POST["nustatymai"];

// Aukščiau pateiktas kodas yra panašus į kitą bloką naudojant if/else
if (tuščias($_POST["nustatymai"])) (
$settings = "Numatytasis"; // Jei nieko neperkeliama, palikite jį kaip „Numatytasis“
) Kitas (
$settings = $_POST["nustatymai"]; // Jei patvirtinta, tada $settings priskiriama išlaikyta reikšmė.
}
?>
Perskaitykite komentarus prie kodo ir viskas turėtų būti aišku.

Ačiū už dėmesį!


Paskutinis atnaujinimas: 2015-11-01

PHP galime naudoti įvairius operatorius: aritmetinius, loginius ir kt. Pažvelkime į kiekvieną operacijos tipą.

Aritmetiniai veiksmai

    + (papildymo operacija)

    Pavyzdžiui, $a + 5

    - (atimties operacija)

    Pavyzdžiui, $a - 5

    * (daugyba)

    Pavyzdžiui, $a * 5

    / (padalinys)

    Pavyzdžiui, $a / 5

    % (gaunant likusią padalijimo dalį)

    Pavyzdžiui: $a=12; aidas $a % 5; // lygus 2

    ++ (padidinti / padidinti reikšmę vienu)

    Pavyzdžiui, ++$a

    Svarbu suprasti skirtumą tarp posakių ++$a ir $a++ . Pavyzdžiui:

    $a=12; $b=++$a; // $b yra lygus 13 echo $b;

    Čia pirmiausia prie kintamojo $a reikšmės pridedamas vienas, o tada jo reikšmė prilyginama kintamajam $b. Būtų kitaip, jei išraiška atrodytų taip: $b=$a++; . Čia pirmiausia kintamojo $a reikšmė buvo lygi kintamajam $b, o po to buvo padidinta kintamojo $a reikšmė.

    -- (sumažinti / sumažinti reikšmę vienu)

    Pavyzdžiui, --$a . Taip pat, kaip ir prieaugio atveju, yra dviejų tipų įrašymas: --$a ir $a--

Užduočių operatoriai

    Kintamąjį prilygina konkrečiai reikšmei: $a = 5

    Papildymas ir rezultato priskyrimas. Pavyzdžiui: $a=12; $a += 5; aidas $a; // lygus 17

    Atimta, po kurios priskiriamas rezultatas. Pavyzdžiui: $a=12; $a - = 5; aidas $a; // lygus 7

    Daugyba ir rezultato priskyrimas: $a=12; $a *= 5; aidas $a; // lygus 60

    Padalijimas ir rezultato priskyrimas: $a=12; $a /= 5; aidas $a; // lygus 2,4

    Sujunkite eilutes ir priskirkite rezultatą. Taikoma dviem eilutėms. Jei kintamieji saugo ne eilutes, o, pavyzdžiui, skaičius, tada jų reikšmės konvertuojamos į eilutes ir tada atliekama operacija: $a=12; $a .= 5; aidas $a; // lygus 125 // identiškas $b="12"; $b .="5"; // lygus 125

    Padalinimo likučio gavimas ir rezultato priskyrimas: $a=12; $a % = 5; aidas $a; // lygus 2

Lyginimo operacijos

Palyginimo operacijos dažniausiai naudojamos sąlyginėse struktūrose, kai reikia palyginti dvi reikšmes ir, priklausomai nuo palyginimo rezultato, atlikti tam tikrus veiksmus. Galimos šios palyginimo operacijos.

    Lygybės operatorius lygina dvi reikšmes ir, jei jos lygios, grąžina true, kitu atveju – false: $a == 5

    Tapatybės operatorius taip pat lygina dvi reikšmes ir, jei jos lygios, grąžina true, kitu atveju – false: $a === 5

    Palygina dvi reikšmes ir, jei jos nėra lygios, pateikia teisingą, kitu atveju – false: $a != 5

    Palygina dvi reikšmes ir, jei jos nėra lygios, pateikia teisingą, kitu atveju – false: $a !== 5

    Palygina dvi reikšmes ir, jei pirmoji yra didesnė už antrąją, grąžina true, kitu atveju pateikia false: $a > 5

    Palygina dvi reikšmes ir, jei pirmoji mažesnė už antrąją, grąžina true, kitu atveju pateikia false: $a< 5

    Palygina dvi reikšmes ir, jei pirmoji yra didesnė už antrąją arba lygi jai, tada grąžina true, kitu atveju pateikia false: $a >= 5

    Palygina dvi reikšmes ir, jei pirmoji yra mažesnė už antrąją arba lygi jai, tada grąžina true, kitu atveju pateikia false: $a<= 5

Lygybės ir tapatybės operatorius

Abu operatoriai lygina dvi išraiškas ir grąžina true, jei išraiškos yra lygios. Tačiau tarp jų yra skirtumų. Jei lygybės operacija ima dvi skirtingų tipų reikšmes, tada jos sumažinamos iki vienos – vertėjo nuomone, optimali. Pavyzdžiui:

Akivaizdu, kad kintamieji saugo skirtingas skirtingų tipų reikšmes. Tačiau palyginus, jie bus sumažinti iki to paties tipo - skaitiniai. O kintamasis $a bus sumažintas iki skaičiaus 22. Ir galiausiai abu kintamieji bus lygūs.

Arba, pavyzdžiui, šie kintamieji taip pat bus lygūs:

$a = klaidinga; $b = 0;

Siekiant išvengti tokių situacijų, naudojama lygiavertiškumo operacija, kuri atsižvelgia ne tik į kintamojo reikšmę, bet ir į tipą:

$a = "22a"; $b = 22; if($a===$b) echo "lygus"; else echo "nelygu";

Dabar kintamieji nebus lygūs.

Nelygybės operatoriai != ir !== veikia panašiai.

Loginės operacijos

Loginės operacijos paprastai naudojamos dviejų palyginimo operacijų rezultatams sujungti. Pavyzdžiui, turime atlikti tam tikrą veiksmą, jei yra kelios sąlygos. Galimos šios loginės operacijos:

    Grąžina „true“, jei abi palyginimo operacijos grąžina „true“, kitu atveju grąžina „false“: $a == 5 && $b = 6

    Panašus į && operaciją: $a == 5 ir $b > 6

    Grąžina „true“, jei bent viena palyginimo operacija pateikia „true“, kitu atveju grąžina „false“: $a == 5 || $b = 6

    Panašus į operaciją || : $a< 5 or $b > 6

    Grąžina tiesa, jei palyginimo operacija grąžina false: !($a >= 5)

    Grąžina tiesa, jei tik viena iš reikšmių yra teisinga. Jei abu yra teisingi arba nė vienas nėra teisingas, grąžina klaidingą. Pavyzdžiui: $a=12; $b=6; if($a xor $b) echo "tiesa"; kitur aidas „klaidingas“;

    Čia loginės operacijos rezultatas bus klaidingas, nes abu kintamieji turi tam tikrą reikšmę. Pakeiskime kodą:

    $a=12; $b=NULL; if($a xor $b) echo "tiesa"; kitur aidas „klaidingas“;

    Čia rezultatas jau bus teisingas, nes vieno kintamojo reikšmė nenustatyta. Jei kintamasis turi reikšmę NULL, tada atliekant logines operacijas jo reikšmė bus traktuojama kaip klaidinga

Bitų operacijos

Bitų operacijos atliekamos su atskirais skaičiaus bitais. Skaičiai laikomi dvejetainiu pavidalu, pavyzdžiui, 2 dvejetainėje vaizde yra 010, skaičius 7 yra 111.

    & (loginis daugyba)

    Daugyba atliekama bitais, o jei abiejų operandų bitų reikšmės yra lygios 1, tada operacija grąžina 1, kitu atveju grąžinamas skaičius 0. Pavyzdžiui: $a1 = 4; //100 $b1 = 5; //101 echo $a1 & $b1; // lygus 4

    Čia skaičius 4 dvejetainėje sistemoje yra 100, o skaičius 5 yra 101. Padauginkite skaičius po bito ir gaukite (1*1, 0*0, 0 *1) = 100, tai yra skaičius 4 dešimtaine formatu.

    | (logiškas papildymas)

    Panašiai kaip ir loginis dauginimas, operacija taip pat atliekama su dvejetainiais skaitmenimis, tačiau dabar grąžinamas vienas, jei bent vienas skaičius tam tikrame skaitmenyje turi vieną. Pavyzdžiui: $a1 = 4; //100 $b1 = 5; //101 echo $a1 | $b1; // lygus 5

    ~ (loginis neigimas)

    apverčia visus bitus: jei bito reikšmė yra 1, tada ji tampa nuliu ir atvirkščiai. $b = 5; aidas ~$b;

    x<

    x>>y – skaičių x perkelia į dešinę y skaitmenimis. Pavyzdžiui, 16>>1 perkelia 16 (tai yra 10 000 dvejetainiu formatu) viena vieta į dešinę, todėl po kablelio yra 1000 arba 8

Stygų sujungimas

Taško operatorius naudojamas eilutėms sujungti. Pavyzdžiui, sujungkime kelias eilutes:

$a="Sveiki,"; $b=" pasaulis"; aidas $a . $b . "!";

Jei kintamieji žymi kitus tipus nei eilutės, pvz., skaičiai, tada jų reikšmės konvertuojamos į eilutes ir tada taip pat įvyksta eilučių sujungimo operacija.



 

Gali būti naudinga perskaityti: