PHP ehdolliset lauseet if, kytkin ja kolmiosainen operaattori. PHP-operaattorit

Oppitunnilla tarkastellaan ehtoja php-operaattorit: if-lause ja vaihtolause

PHP:n ehdollisia lauseita edustaa kolme päärakennetta:

  • kunto operaattori jos,
  • vaihtaa operaattoria vaihtaa
  • Ja kolmiosainen operaattori.

Tarkastellaanpa kutakin niistä tarkemmin.

PHP if -lause

Kuva 3.1. Ehdollinen IF-lause, lyhyt versio


Riisi. 3.2. JOS MUUTA Ehdollinen lausekkeen syntaksi


Riisi. 3.3. IF elseif -ehtolausekkeen täydellinen syntaksi

Tehdään yhteenveto:

Koko syntaksi:

if (ehto) ( // jos ehto on tosi operaattori1; operaattori2; ) elseif(ehto) ( operaattori1; ... ) else ( // jos ehto on epätosi operaattori1; operaattori2; )

  • Lyhennetty syntaksi voi eivät sisällä else-lauseen osia eivätkä ylimääräistä elseif-ehtoa
  • Funktiosanan elseif sijasta voit kirjoittaa else if (erikseen)
  • Yhdessä if-konstruktiossa voi olla useita elseifejä. Ensimmäinen elseif-lauseke, joka on yhtä suuri kuin TOSI, suoritetaan.
  • Jos vaihtoehtoinen elseif-ehto on olemassa, else-lauseen on oltava syntaksin viimeisenä.

Ehdollinen lause voi käyttää kaksoispistettä: kiharan aaltosulkeiden sijaan. Tässä tapauksessa lausunto päättyy virallinen sana loppu Jos

Riisi. 3.4. Ehdollinen lause If ja Endif php:ssä

Esimerkki:

if($x > $y): echo $x." on suurempi kuin ".$y; elseif($x == $y): // käytettäessä ":" et voi kirjoittaa erikseen muuten, jos echo $x." on yhtä kuin ".$y; else: echo $x." not > and not = ".$y; loppu Jos;

Tärkeä: Kun konstruktiossa käytetään kaksoispistettä kiharan aaltosulkeiden sijaan, elseifiä ei voi kirjoittaa kahdella sanalla!

Loogiset operaatiot kunnossa

Suluissa oleva if-ehto voi sisältää seuraavat toiminnot:

Esimerkki: tarkista numeerisen muuttujan arvo: jos se on pienempi tai yhtä suuri kuin 10, näytä viesti "luku pienempi tai yhtä suuri kuin 10", muuten näytä viesti "luku suurempi kuin 10"


Ratkaisu:

$numero=15; jos ($numero<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

PHP-koodilohkot voidaan rikkoa, katsotaanpa esimerkkiä:

Esimerkki: Näytä html-koodi näytöllä "a on 4", jos muuttuja $a on todella yhtä suuri kuin 4


1 Ratkaisu:
1 2 3 4

2 Ratkaisu:

1 2 3 A on 4

A on 4

php työ 3_1: Tulosta värikäännökset englanniksi venäjäksi tarkistamalla muuttujan arvon (jonka väri on määritetty: $a="blue")


php työ 3_2: Etsi enintään kolme numeroa

Vertailuoperaatiot ja valhesääntö

Suluissa olevan if-konstruktin tulee sisältää looginen lauseke tai muuttuja, jota tarkastellaan logiikan algebran näkökulmasta ja joka palauttaa arvot joko tosi tai epätosi

Nuo. yksi muuttuja voi toimia ehdona. Katsotaanpa esimerkkiä:

1 2 3 4 $a = 1; jos ($a) ( kaiku $a; )

$a=1; jos ($a) ( kaiku $a; )

Esimerkissä kääntäjä php kieli ottaa huomioon valhesäännön suluissa olevan muuttujan:

Valheen sääntö tai se, mitä pidetään vääränä:

  • looginen Väärä
  • koko nolla ( 0 )
  • todellinen nolla ( 0.0 )
  • tyhjä rivi ja merkkijono «0»
  • matriisi ilman elementtejä
  • objekti ilman muuttujia
  • erityinen tyyppi TYHJÄ

Siten tarkastelussa esimerkissä muuttuja $a on yhtä suuri kuin yksi, vastaavasti ehto on tosi ja operaattori kaikuu $a; näyttää muuttujan arvon.

php työ 3_3: Muuttuja a, jolla on merkkijonoarvo, annetaan. Jos a on yhtä suuri kuin nimi, tulosta "Hei, nimi!", jos a on yhtä suuri tyhjä arvo, sitten lähtö "Hei muukalainen!"

Loogiset konstruktit JA TAI ja EI ehdollisessa operaattorissa

  1. Joskus on tarpeen säätää useiden ehtojen täyttymisestä samanaikaisesti. Sitten ehdot yhdistetään looginen operaattori AND — && :
  2. $a=1; if ($a>0 || $a>1) ( echo "a > 0 tai a > 1"; )

  3. Jos ehto on epätosi, käytä looginen operaattori EI — ! :
  4. 1 2 3 4 $a = 1; jos (! ($a< 0 ) ) { echo "a не < 0" ; }

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

Vaihda operaattori PHP

Kytkinoperaattori tai "kytkin" korvaa useita peräkkäisiä if-konstrukteja. Näin tehdessään se vertaa yhtä muuttujaa useisiin arvoihin. Tämä on siis kätevin tapa monihaaraisuuden järjestämiseen.

Syntaksi:

1 2 3 4 5 6 7 8 9 10 kytkin ($muuttuja) ( case "arvo1" : operaattori1 ; break ; case "arvo2" : operaattori2 ; break ; case "arvo3" : operaattori3 ; break ; [ oletus : operaattori4 ; tauko; ] )

switch($muuttuja)( tapaus "arvo1": operaattori1; tauko; tapaus "arvo2": operaattori2; tauko; tapaus "arvo3": operaattori3; tauko; )

  • Operaattori voi tarkistaa sekä merkkijonoarvot (niin ne määritellään lainausmerkeissä) että numeeriset arvot (ilman lainausmerkkejä).
  • Taukolauseke konstruktiossa vaaditaan. Se poistuu konstruktista, jos ehto on tosi ja ehtoa vastaava operaattori suoritetaan. Kaikki tapauslausunnot toteutetaan ilman taukoa niiden totuudesta riippumatta.

Riisi. 3.5. Ehdollinen lausunto Switch


Esimerkki: annetaan taulukko, jossa on täydet miesten nimet. Tarkista taulukon ensimmäinen elementti ja näytä nimestä riippuen tervehdys lyhyellä nimellä.


Ratkaisu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $nimet = array ("Ivan" , "Peter" , "Semjon" ) ; kytkin ($names [ 0 ] ) ( tapaus "Peter" : echo "Hei, Petya!" ; break ; case "Ivan" : echo "Hei, Vanya!" ; break ; case "Semjon" : kaiku "Hei, Vanya! " ; break ; oletus : echo "Hei, $nimet!"; tauko ;

)

$nimet=array("Ivan","Peter","Semjon"); switch($names)( case "Peter": echo "Hei, Petya!"; break; case "Ivan": echo "Hei, Vanya!"; break; case "Semjon": echo "Hei, Vanya!"; break oletus: echo "Hei, $names!"

  • php työ 3_4:
  • Luo muuttuja $day ja anna sille mielivaltainen numeerinen arvo Tulosta lause käyttämällä kytkinrakennetta"Tämä on työpäivä"
  • , jos $day-muuttujan arvo on lukuvälillä 1-5 (mukaan lukien) Tulosta lause"Tämä on vapaapäivä"
  • , jos $day-muuttujan arvo on lukuvälillä 1-5 (mukaan lukien) , jos muuttujan $day arvo on yhtä suuri kuin numerot 6 tai 7"Tuntematon päivä"

, jos $day-muuttujan arvo ei ole lukuvälillä 1-7 (mukaan lukien)

1 2 3 4 5 6 7 8 9 10 11 12 Täydennä koodi: ... kytkin (... ) ( tapaus 1 : tapaus 2 : ... kaiku"Tämä on työpäivä"

; tauko ;

tapaus 6 : ... oletus : ... )

Switch(...)( tapaus 1: tapaus 2: ... kaiku "Tämä on työpäivä"; tauko; tapaus 6: ... oletus: ... ) PHP-kolmiooperaattori

Kolmiosainen operaattori

, eli kolmella operandilla on melko yksinkertainen syntaksi, jossa ? ehto on kirjoitettu, ja oikealla on kaksi merkillä erotettua operaattoria: , merkin vasemmalla puolella operaattori suoritetaan, jos ehto on tosi, ja merkin oikealla puolella: operaattori suoritetaan, jos ehto on väärä.

kunto? operaattori1: operaattori2;

Kaksi päälausetta, jotka tarjoavat ehdollisia haarautumisrakenteita, ovat if ja switch. Yleisimmin käytetty if-lausetta käytetään ehdollisissa hyppyrakenteissa. Toisaalta tietyissä tilanteissa, varsinkin jos joudut navigoimaan yhdessä useista haaroista yksittäisen lausekkeen arvosta riippuen, ja useiden if-lauseiden käyttö johtaa monimutkaisempaan koodiin, switch-käskystä tulee kätevämpi. .

Ennen kuin opit näitä operaattoreita, sinun on ymmärrettävä loogiset lausekkeet ja operaatiot. Loogiset operaatiot Loogisten toimintojen avulla voit yhdistää loogisia arvoja (kutsutaan myös totuusarvoiksi) uusien loogisten arvojen tuottamiseksi. Kuten alla olevasta taulukosta näkyy, PHP tukee standardia

loogisia operaatioita
(ja, tai, ei ja xor), kahdella ensimmäisellä on vaihtoehtoiset versiot. PHP loogiset toiminnot
Operaatio Operaatio, jonka tulos on tosi, jos ja vain jos sen molemmat operandit ovat tosi
tai Operaatio, jonka tulos on tosi, jos toinen operandi (tai molemmat operandit) on tosi
! Operaatio, jonka tulos on tosi, jos sen yksi operandi (joka on annettu operaatiomerkin oikealla puolella) on epätosi, ja epätosi, jos sen operandi on tosi
xor Operaatio, jonka tulos on tosi, jos jompikumpi sen operandiista (mutta ei molemmat) on tosi
&& Sama kuin ja-operaattori, mutta se sitoo operandinsa tiukemmin kuin tämä operaattori
|| Sama kuin operaattori or, mutta se sitoo operandinsa tiukemmin kuin tämä operaattori

Toiminnot && ja || pitäisi olla tuttu C-ohjelmoijille. kutsutaan yleensä ei, koska siitä tulee sen operandin negaatio, johon sitä sovelletaan.

Testataksesi, ovatko molemmat operandit TOSI, käytä AND-operaattoria, joka voidaan kirjoittaa myös kaksois-et-merkillä (&&). Sekä AND- että &&-operaattorit ovat loogisia operaattoreita, ainoa ero on, että &&-operaattorilla on korkeampi prioriteetti kuin AND-operaattorilla. Sama koskee syrjäisimpiä ja ||-operaattoreita. AND-operaattori palauttaa TOSI vain, jos molemmat operandit ovat TOSI; muussa tapauksessa FALSE palautetaan.

Tarkistaaksesi, onko ainakin yksi operandi TOSI, käytä OR-operaattoria, joka voidaan kirjoittaa myös kaksoispystyviivana (||). Tämä operaattori palauttaa TRUE, jos vähintään yksi sen operandi on TOSI.

Käytettäessä OR-operaattoria ohjelmassa voi ilmetä hienovaraisia ​​loogisia virheitä. Jos PHP havaitsee, että ensimmäinen operandi on TOSI, se ei arvioi toisen operandin arvoa. Tämä säästää suoritusaikaa, mutta sinun on oltava varovainen varmistaaksesi, että koodia, jonka ohjelman suorittaminen edellyttää, ei sijoiteta toiseen operandiin.

XOR-operaattorin avulla voit tarkistaa, onko vain yksi operandeista (mutta ei molempia) TOSI. Tämä operaattori palauttaa TRUE, jos yksi ja vain yksi sen operandi on TOSI. Jos molemmat operandit ovat TOSI, operaattori palauttaa EPÄTOSI.

Voit kääntää loogisen arvon käyttämällä NOT-operaattoria, joka kirjoitetaan usein huutomerkiksi (!). Se palauttaa TRUE, jos operandi on EPÄTOSI ja FALSE, jos operandi on TOSI.

Alla olevassa taulukossa on joitain Boolen lausekkeita ja niiden tuloksia:

Vertailutoiminnot

Alla oleva taulukko näyttää vertailuoperaatioita, joita voidaan käyttää joko numeroiden tai merkkijonojen kanssa:

Vertailutoiminnot
(ja, tai, ei ja xor), kahdella ensimmäisellä on vaihtoehtoiset versiot. Nimi PHP loogiset toiminnot
== Yhtä Operaatio, jonka tulos on tosi, jos sen operandit ovat yhtä suuret ja epätosi muuten
!= Ei tasa-arvoinen Operaatio, jonka tulos on epätosi, jos sen operandit ovat yhtä suuret ja muuten tosi
< Vähemmän Operaatio, jonka tulos on tosi, jos vasen operandi on pienempi kuin oikea operandi, ja epätosi muuten
> Lisää Operaatio, jonka tulos on tosi, jos vasen operandi on suurempi kuin oikea operandi, ja epätosi muuten
<= Vähemmän tai yhtä suuret Operaatio, jonka tulos on tosi, jos vasen operandi on pienempi tai yhtä suuri kuin oikea operandi, ja epätosi muuten
>= Enemmän tai yhtä paljon Operaatio, jonka tulos on tosi, jos vasen operandi on suurempi tai yhtä suuri kuin oikea operandi, ja epätosi muuten
=== Identtisesti Operaatio, jonka tulos on tosi, jos molemmat operandit ovat samat ja samaa tyyppiä, ja epätosi muuten

Yksi hyvin yleinen virhe, joka sinun on tehtävä, on olla sekoittamatta määritysoperaattoria (=) vertailuoperaattoriin (==).

Toiminnan prioriteetti

Tietenkään ei pidä käyttää liikaa ohjelmointityyliä, jossa operaatioiden järjestys määräytyy pääasiassa etusijasääntöjen avulla, koska tähän tyyliin kirjoitettu koodi on vaikea ymmärtää sitä myöhemmin opiskeleville, mutta on huomattava, että vertailu operaatioilla on korkeampi prioriteetti kuin loogisilla operaatioilla. Tämä tarkoittaa, että lause, jossa on alla olevan kaltainen tarkistuslauseke

PHP koodi $var1 = 14; $var2 = 15; if (($var1< $var2) && ($var2 < 20)) echo "$var2 больше $var1 но меньше 20";

voidaan kirjoittaa uudelleen muotoon

PHP koodi ...if ($var1< $var2 && $var2 < 20) ...

jos-muuten lausunto

Ohjeet jos sallii koodilohkon suorittamisen, jos ehdollinen lauseke tässä käskyssä on TOSI; muuten koodilohkoa ei suoriteta. Ehdona voidaan käyttää mitä tahansa lauseketta, mukaan lukien testit nollasta poikkeavalle arvolle, yhtäläisyydelle, muuttujien NULL-arvolle ja funktioiden palauttamille arvoille.

Ei ole väliä mitkä yksittäiset ehdolliset ehdolliset lauseet muodostavat. Jos ehto on tosi, se suoritetaan ohjelmakoodi, suljettuna kihariin aaltosulkeisiin (()). Muussa tapauksessa PHP jättää sen huomioimatta ja siirtyy tarkastamaan toisen ehdon tarkistaen kaikki muistiin kirjoittamasi ehdot kunnes se osuu käskyyn muu, jonka jälkeen se suorittaa automaattisesti tämän lohkon. Muu lause on valinnainen.

if-lauseen syntaksi on:

If (ehdollinen lauseke) ( koodilohko; )

Jos laskennan seurauksena ehdollinen lauseke Jos arvo on TRUE, sen jälkeen oleva ohjelmakoodin lohko suoritetaan. Seuraavassa esimerkissä, jos $käyttäjänimi on "Järjestelmänvalvoja", tervetuloviesti tulee näkyviin. Muuten ei tapahdu mitään:

PHP koodi $käyttäjänimi = "Järjestelmänvalvoja"; if ($username == "Järjestelmänvalvoja") ( echo "Tervetuloa järjestelmänvalvojasivulle."; )

Jos ohjelmakoodin lohko sisältää vain yhden käskyn, aaltosulkeet ovat valinnaisia, mutta hyvä tapa– asenna ne aina, koska ne helpottavat koodin lukemista ja muokkaamista.

Valinnainen else-lauseke on koodilohko, joka suoritetaan oletusarvoisesti, kun ehdollinen lauseke on FALSE. else-lausetta ei voi käyttää erillään if-lauseesta, koska elsellä ei ole omaa ehdollista lauseketta. Eli muun ja jos pitäisi aina olla yhdessä koodissasi:

jos ja muuten lausunnot $käyttäjänimi = "ei järjestelmänvalvojaa"; if ($username == "Järjestelmänvalvoja") ( echo "Tervetuloa järjestelmänvalvojasivulle."; ) else ( echo "Tervetuloa käyttäjäsivulle."; )

Älä unohda sulkea if-lauseen koodilohkoa aaltosulkeilla, jos laitat aaltosulkeen lohkon alkuun. Muussa lohkossa on myös oltava avautuvat ja sulkeutuvat kiharat aaltosulkeet, aivan kuten if-lohkossa.

Tämä on hyvä, paitsi silloin, kun sinun on tarkistettava useita ehtoja peräkkäin. Ohjeet sopivat tähän muuten jos. Sen avulla voit tarkistaa lisäehdot kunnes tosi löytyy tai muu-lohko saavutetaan. Jokaisella elseif-lausekkeella on oma koodilohkonsa, joka on sijoitettu välittömästi elseif-lausekkeen ehtolausekkeen jälkeen. Elefif-lause tulee if-lauseen jälkeen ja else-lauseen edelle, jos sellainen on.

Elefif-lauseen syntaksi on hieman monimutkaisempi, mutta seuraava esimerkki auttaa sinua ymmärtämään sen:

Useiden ehtojen tarkistaminen $käyttäjänimi = "Vieras"; if ($username == "Järjestelmänvalvoja") ( echo "Tervetuloa järjestelmänvalvojan sivulle."; ) elseif ($username == "Vieras") ( echo "Katsominen ei käytettävissä."; ) else ( echo "Tervetuloa sivulle käyttäjä.";)

Tässä tarkistetaan kaksi ehtoa ja $username-muuttujan arvosta riippuen, erilaisia ​​toimia. Ja vielä on mahdollisuus tehdä jotain, jos muuttujan arvo poikkeaa kahdesta ensimmäisestä.

Kolmiosainen operaattori?:

?:-operaattori on kolmiosainen (kolmiosainen) operaattori, joka ottaa kolme operandia. Se toimii samalla tavalla kuin if-lause, mutta palauttaa toisen kahdesta lausekkeesta. Ehdollinen lauseke määrittää arvioitavan lausekkeen. Kaksoispiste (:) toimii lausekkeiden erottimena:

(kunto)? arvioi_jos_ehto_tosi: arvioi_jos_ehto_epätosi;

Alla oleva esimerkki tarkistaa arvon ja palauttaa eri merkkijonoja sen mukaan, onko se TOSI vai EPÄTOSI:

Viestin luominen operaattorilla ?: $logged_in = TOSI; $user = "Igor"; $banneri = (!$logged_in) ? "Rekisteröidy!" : "Tervetuloa takaisin, $käyttäjä!"; echo $banneri;

On aivan selvää, että yllä oleva lausunto vastaa seuraavaa lausuntoa:

PHP koodi $logged_in = TOSI; $user = "Igor"; if (!$logged_in) ( $banner = "Rekisteröidy!"; ) else ( $banner = "Tervetuloa takaisin, $käyttäjä!"; ) echo $banner;

vaihtaa lausunto

Ohjeet vaihtaa vertaa lauseketta useilla arvoilla. Lausekkeena käytetään pääsääntöisesti muuttujaa, jonka arvosta tietty koodilohko tulee suorittaa. Kuvittele esimerkiksi $action-muuttuja, jolla voi olla arvot "ADD", "MODIFY" (muuta) ja "DELETE". Switch-käskyn avulla on helppo määrittää koodilohko, joka tulee suorittaa kullekin näistä arvoista.

Jos haluat näyttää eron if- ja switch-lauseiden välillä, testataan muuttujaa useiden arvojen suhteen. Alla oleva esimerkki näyttää ohjelmakoodin, joka toteuttaa tällaisen tarkistuksen if-käskyn perusteella ja seuraavassa esimerkissä switch-käskyn perusteella:

Testaus yhtä useista arvoista (if-lauseke) if ($action == "LISÄÄ") ( echo "Suorita lisäys."; echo "Käskyjen määrä kussakin lohkossa on rajoittamaton."; ) elseif ($action == "MUOKKA") ( echo "Suorita muutos ."; ) elseif ($action == "POISTA") ( echo "Suorita poisto."; ) Testaus yhtä useista arvoista (kytkinlauseke) switch ($action) ( case "ADD": echo "Suorita lisäys."; echo "Käskyjen määrä kussakin lohkossa on rajoittamaton."; break; case "MODIFY": echo "Suorita muutos."; break; case "DELETE" : echo "Suorita poisto.";

Switch-lause ottaa arvon switch-avainsanan vieressä ja alkaa vertailla sitä kaikkiin arvoihin seisoo lähellä avainsanoilla tapaus, järjestyksessä niiden sijainnin mukaan ohjelmassa. Jos vastaavuutta ei löydy, mitään lohkoista ei suoriteta. Kun vastaavuus on löydetty, vastaava koodilohko suoritetaan. Myös alla olevat koodilohkot suoritetaan - switch-käskyn loppuun tai asti avainsana tauko. Tämä on kätevää organisoida prosessi, joka koostuu useista peräkkäisistä vaiheista. Jos käyttäjä on jo suorittanut joitakin vaiheita, hän voi jatkaa prosessia siitä, mihin hän jäi.

Switch-käskyn vieressä olevan lausekkeen on palautettava primitiivityyppinen arvo, kuten numero tai merkkijono. Taulukkoa voidaan käyttää vain erillisenä elementtinä, jonka arvo on alkeistyyppiä.

Oletusvalinta

Jos ehdollisen lausekkeen arvo ei vastaa mitään ohjeissa ehdotetuista arvoista tapausvaihtoehdot, tässä tapauksessa kytkinkäsky antaa sinun tehdä jotain, aivan kuten if, elseif, else -rakenteen else-käsky. Tätä varten tarvitset viimeinen vaihtoehto tee ohje valintaluetteloon oletuksena:

Virheilmoituksen luominen oletuslausunnon avulla $action = "POISTA"; switch ($action) ( case "ADD": echo "Suorita lisäys."; echo "Käskyjen määrä kussakin lohkossa on rajoittamaton."; break; case "MODIFY": echo "Suorita muutos."; break; case "DELETE" : echo "Suorita poisto.";

Switch-käsky tukee tavallisen lisäksi vaihtoehtoista syntaksia - avainsanarakennetta kytkin/pääkytkin, joka määrittää lauseen alun ja lopun aaltosulkeiden sijaan:

Switch-lause päättyy avainsanaan endswitch kytkin ($action): case "ADD": echo "Suorita lisäys."; echo "Käskyjen määrä kussakin lohkossa on rajoittamaton."; tauko;

case "MODIFY": echo "Suorita muutos."; tauko;

case "DELETE": echo "Suorita poisto."; tauko; oletus: echo "Virhe: $action komento ei kelpaa, ". "Vain ADD-, MODIFY- ja DELETE-komentoja voidaan käyttää."; päätykytkin;. Keskeytä suoritus Jos vain tiettyä arvoa vastaava koodilohko suoritetaan, avain tulee lisätä tämän lohkon loppuun sana tauko PHP tulkki , kohtaaessaan break-avainsanan jatkaa suorittamaan lopetusrivin jälkeen olevan rivin kihara olkaimet

switch-lauseita (tai endswitch-avainsanaa). Mutta jos et käytä break-lausetta, tarkistus jatkuu seuraavissa haaroissa kotelon mallit vaihtaa. Alla on esimerkki:
Mitä tapahtuu poissa ollessa
rikkoa lausunnot
"; }

$action="KOONTA TILAA"; kytkin ($action) ( tapaus "KOONTA TILAA": echo "Kokoa tilaus.

"; tapaus "PACKAGE": echo "Pack.

"; tapaus "SHIP": echo "Toimita asiakkaalle.

Jos $action-muuttuja on asetettu arvoon "ASSEMBLE ORDER", tämän fragmentin tulos on seuraava:

Kerää tilaus. Kääriä. Toimita asiakkaalle.

Olettaen, että rakennusvaihe on jo valmis ja $action-muuttuja on asetettu arvoon "PACKAGE", saadaan seuraava tulos:
Kääriä. Toimita asiakkaalle. Joskus break-lauseen puuttuminen on hyödyllistä, kuten yllä olevassa esimerkissä, jossa järjestysvaiheet muodostetaan, mutta useimmissa tapauksissa tätä lausetta tulisi käyttää. Tietotyypit Syklit 1 2 3 4 5 6 7 8 9 10 Pääasia on toimia operaattorin tiedot

- tämä ehto. jos englannista käännetty tarkoittaa
Jos
}
. Ehto hyväksytään argumentiksi (mikä on suluissa). Ehto voi olla looginen lauseke tai looginen muuttuja. Yksinkertaisesti sanottuna ilmaisun merkitys on tämä:
{
Jos (ehto)(
}
ehto täyttyy, tee tämä

muu
ehto ei täyty, tee se toisin

Toivottavasti ehdollisen toiminnan logiikka on selvä. Katsotaanpa nyt esimerkkiä.
$a = 5;< , как и в математике, обозначают больше и меньше
$b = 25;
{
// Nyt huomio! Ehto: Jos $b on suurempi kuin $a
// Merkit > ja
}
jos($b > $a)
{
// jos ehto täyttyy, suorita tämä toiminto
echo "$b on suurempi kuin $a";
}
?>
muu // jos ei suoriteta, niin tämä
echo "$a on suurempi tai yhtä suuri kuin $b"; Esittely. Esimerkki on melko yksinkertainen. Toivottavasti kaikki on selvää. Nyt ehdotan harkitsemaan monimutkaisempaa tilannetta, jossa useiden ehtojen on täytyttävä. Jokainen uusi ehto sisältää pääehdon jälkeen jos()- apu, joka kirjoitetaan nimellä muuten jos(). Lopulta se tulee olemaan kuten yleensä muu.

Tehtävä: Testit suoritetaan koulussa. Käsikirjoituksen on laskettava pisteet tietäen kunkin arvosanan saamisen ehdot ja itse opiskelijan pisteet. Katsotaanpa, kuinka tämä kirjoitetaan, äläkä unohda lukea kommenttia.

$testi = 82; // Oletetaan, että opiskelija kirjoitti kokeen, jossa on 82 pistettä

// Kirjoita ensimmäinen ehto viidelle
jos($testi > 90)
{
// jos ehto täyttyy, suorita tämä toiminto.
kaiku "Arviointi 5";
}
// &&-merkki tarkoittaa "ja, liitto", että ehto täyttyy, jos molemmat ovat tosia
// eli pistemäärä on alle 91 ja yli 80, sitten 4. Muussa tapauksessa ehdot luetaan lisää
muuten jos ($test< 91 && $test > 80)
{
kaiku "Arviointi 4";
}
muuten jos ($test< 81 && $test > 70)
{
kaiku "Arviointi 3";
}
. Ehto hyväksytään argumentiksi (mikä on suluissa). Ehto voi olla looginen lauseke tai looginen muuttuja. Yksinkertaisesti sanottuna ilmaisun merkitys on tämä:
{
echo "Meidän pitäisi kirjoittaa testi uudelleen...";
}
?>
muu // jos ei suoriteta, niin tämä
Oppilaamme, jolla on aikaa sekä levätä että kirjoittaa normaali koe, saa arvosana 4! Toivottavasti toimintaperiaate on selvä.

On myös mahdollista tallentaa lyhyesti ehdollisen operaation toiminta, kun tarvitset toimintoa vain, jos ehto täyttyy.

$ikä = 19; // muuttuva iän mukaan

Jos ($ikä > 17)(
echo "Siinä se! Voin tehdä mitä haluan! Olen jo $-ikäinen!";
}
Ihan kiva esimerkki lyhyt huomautus ehdollinen toiminta. muu ei ole pakko kirjoittaa.

Vertailuoperaattorit PHP:ssä

Ehdollisen operaation toimintaperiaate on selvä. Mutta kuten ymmärrät, on monia muitakin tapoja vertailla. Katsotaanpa alla olevaa taulukkoa vertailuoperaattoreiden kanssa.

Esimerkki nimen tuloksesta
$a == $b on yhtä suuri kuin tosi, jos $a on $b
$a === $b Identtinen True, jos $a on yhtä suuri kuin $b ja molemmat muuttujat ovat samaa tyyppiä
$a != $b Ei yhtä suuri kuin Tosi, jos $a ei ole yhtä suuri kuin $b
$a === $b Ei identtinen True kanssa, jos $a ei ole yhtä suuri kuin $b ja molemmat tyypit eivät ole samoja
$a > $b Suurempi kuin tosi, jos $a on suurempi kuin $b
$a< $b Меньше чем True, если $a меньше, чем $b
$a >= $b Suurempi tai yhtä suuri kuin True, jos $a on suurempi tai yhtä suuri kuin $b
$a<= $b Меньше или равно True, если $a меньше или равно $b
Katsotaanpa nyt operaattoreita esimerkkien kanssa:

// vastoin tapaa = tarkoittaa arvon antamista muuttujalle, ja == on yhtä suuri
jos ($a == 5)(
echo "$a on 5"; // tulostaa "5 on 5"
) muu (
echo "$a ei ole yhtä suuri kuin 5";
}

Jos ($a != 6)(
echo "$a ei ole yhtä suuri kuin 6"; // tulostaa "5 ei ole yhtä suuri kuin 6". Tarpeellinen kieltäytymistilanteessa
) muu (
echo "$a on jotenkin yhtä suuri kuin 6";
}

// enemmän ja vähemmän mielestäni kaikki on selvää. Siksi esimerkki on monimutkaisempi
jos ($a<= 6){
echo "$a on pienempi tai yhtä suuri kuin 6"; // tulostaa "5 on pienempi tai yhtä suuri kuin 6"
) muu (
echo "$a on suurempi kuin 6";
}

PHP loogiset operaattorit

Joskus sinun ei tarvitse verrata yhtä muuttujaa, vaan kahta tai useampaa kerralla yhdessä ehdossa. Tätä varten on olemassa loogisia operaattoreita.

Esimerkki nimen tuloksesta
$a ja $b Looginen "ja" TOSI, jos sekä $a että $b ovat TOSI.
$a tai $b Looginen "tai" TOSI, jos joko $a tai $b on TOSI.
$a xor $b Yksinomainen "tai" TOSI, jos $a tai $b on TOSI, mutta ei molempia.
! $a TOSI negatiivinen, jos $a ei ole TOSI.
$a && $b Looginen "ja" TOSI, jos sekä $a että $b ovat TOSI.
$a || $b Boolen arvo "tai" TOSI, jos joko $a tai $b on TOSI.
Olemme jo huomanneet sen operaatioissa Ja Ja tai onko muita operaattoreita? Tämä tehdään monimutkaisten vertailutoimintojen priorisoimiseksi. Taulukossa loogiset operaattorit on listattu tärkeysjärjestyksessä: pienimmästä suurimpaan, eli esimerkiksi || on korkeampi prioriteetti kuin tai.

Siirrytään eteenpäin esimerkkeihin

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

// ehto: Jos 5 ei ole yhtä suuri kuin 6 (TOSI) JA 6 ei ole yhtä suuri kuin 7 (TOSI)
jos ($a< 6 && $b != $c){
echo "Todellakin niin!"; // tulostaa "Todella niin!" koska Molemmat ehdot ovat TOSI
) muu (
echo "Yksi ehdoista ei ole totta";
}

// ehto: Jos 6 ei ole yhtä suuri kuin 6 (EPÄTOSI) TAI 6 ei ole yhtä suuri kuin 7 (TOSI)
if ($b != 6 || $b != $c)(
echo "Siinä se!"; // näyttää "Se on se!", koska vähintään YKSI ehdoista on TOSI
) muu (
echo "Molemmat ehdot ovat vääriä";
}

Kolmiosainen operaattori

Suosittelen palaamaan kolmiosaisen koodin kysymykseen myöhemmin. En voinut olla mainitsematta sitä, koska se on tärkeä muotoilu, joka vähentää merkittävästi koodin kokoa. Suosittelen, että katsot koodin heti.

Koodin ydin:(kunto)? a:n arvo, jos tosi: a:n arvo, jos epätosi

Siten lyhennämme if-lausetta. Tämä toiminto on kuitenkin voimassa vain määritettäessä arvoja muuttujalle. Katsotaanpa nyt valmis esimerkkiä.

// Esimerkki kolmiosaisen operaattorin käytöstä
$asetukset = (tyhjä($_POST["asetukset"])) ? "Oletus" : $_POST["asetukset"];

// Yllä oleva koodi on samanlainen kuin seuraava lohko käyttämällä if/else
if (tyhjä($_POST["asetukset"])) (
$settings = "Oletus"; // Jos mitään ei siirretä, jätä se "oletukseksi"
) muu (
$asetukset = $_POST["asetukset"]; // Jos hyväksytty, $settings saa hyväksytyn arvon.
}
?>
Lue koodin kommentit ja kaiken pitäisi olla selvää.

Kiitos huomiostasi!


Viimeisin päivitys: 1.11.2015

PHP:ssä voimme käyttää erilaisia ​​operaattoreita: aritmeettinen, looginen jne. Tarkastellaan jokaista toimintotyyppiä.

Aritmeettiset operaatiot

    + (lisäystoiminto)

    Esimerkiksi $a + 5

    - (vähennysoperaatio)

    Esimerkiksi $a - 5

    * (kertolasku)

    Esimerkiksi $a * 5

    / (jaosto)

    Esimerkiksi $a / 5

    % (saa jaon loppuosan)

    Esimerkki: $a=12; kaiku $a % 5; // on yhtä kuin 2

    ++ (lisää/lisää arvoa yhdellä)

    Esimerkiksi ++$a

    On tärkeää ymmärtää ero lausekkeiden ++$a ja $a++ välillä. Esimerkiksi:

    $a = 12; $b=++$a; // $b on yhtä suuri kuin 13 echo $b;

    Tässä ensin yksi lisätään muuttujan $a arvoon ja sitten sen arvo rinnastetaan muuttujaan $b. Se olisi erilaista, jos lauseke näyttäisi tältä: $b=$a++; . Tässä ensin muuttujan $a arvo oli yhtä suuri kuin muuttuja $b, ja sitten muuttujan $a arvoa nostettiin.

    -- (vähennä/vähennä arvoa yhdellä)

    Esimerkiksi --$a . Ja myös, kuten inkrementin tapauksessa, on olemassa kahdenlaisia ​​​​tallennuksia: --$a ja $a--

Tehtäväoperaattorit

    Tasaa muuttujan tiettyyn arvoon: $a = 5

    Lisäys ja sen jälkeen tuloksen määrittäminen. Esimerkki: $a=12; $a += 5; kaiku $a; // yhtä kuin 17

    Vähennys ja sen jälkeen tuloksen määrittäminen. Esimerkki: $a=12; $a - = 5; kaiku $a; // on yhtä kuin 7

    Kertominen ja sen jälkeen tuloksen määrittäminen: $a=12; $a *= 5; kaiku $a; // vastaa 60

    Jako, jota seuraa tuloksen määrittäminen: $a=12; $a /= 5; kaiku $a; // yhtä suuri kuin 2,4

    Yhdistä rivit ja määritä tulos. Koskee kahta riviä. Jos muuttujat eivät tallenna merkkijonoja, vaan esimerkiksi numeroita, niiden arvot muunnetaan merkkijonoiksi ja sitten suoritetaan toiminto: $a=12; $a .= 5; kaiku $a; // yhtä suuri kuin 125 // identtinen $b="12":n kanssa; $b .="5"; // yhtä kuin 125

    Jaon loppuosan saaminen ja tuloksen osoittaminen: $a=12; $a % = 5; kaiku $a; // on yhtä kuin 2

Vertailutoiminnot

Vertailuoperaatioita käytetään tyypillisesti mm ehdolliset rakenteet, kun sinun on verrattava kahta arvoa, ja suorita joitakin toimia vertailun tuloksesta riippuen. Seuraavat vertailutoiminnot ovat käytettävissä.

    Tasa-arvooperaattori vertaa kahta arvoa, ja jos ne ovat yhtä suuret, palauttaa arvon tosi, muussa tapauksessa epätosi: $a == 5

    Identiteettioperaattori vertailee myös kahta arvoa, ja jos ne ovat yhtä suuret, palauttaa tosi, muussa tapauksessa false: $a === 5

    Vertaa kahta arvoa, ja jos ne eivät ole yhtä suuret, palauttaa tosi, muuten palauttaa false: $a != 5

    Vertaa kahta arvoa, ja jos ne eivät ole yhtä suuret, palauttaa tosi, muussa tapauksessa palauttaa false: $a !== 5

    Vertaa kahta arvoa, ja jos ensimmäinen on suurempi kuin toinen, palauttaa tosi, muussa tapauksessa palauttaa false: $a > 5

    Vertaa kahta arvoa, ja jos ensimmäinen on pienempi kuin toinen, palauttaa tosi, muussa tapauksessa palauttaa false: $a< 5

    Vertaa kahta arvoa, ja jos ensimmäinen on suurempi tai yhtä suuri kuin toinen, palauttaa tosi, muussa tapauksessa epätosi: $a >= 5

    Vertaa kahta arvoa, ja jos ensimmäinen on pienempi tai yhtä suuri kuin toinen, palauttaa tosi, muussa tapauksessa epätosi: $a<= 5

Tasa-arvo- ja identiteettioperaattori

Molemmat operaattorit vertaavat kahta lauseketta ja palauttavat tosi, jos lausekkeet ovat yhtä suuret. Mutta niiden välillä on eroja. Jos tasa-arvooperaatio ottaa kaksi erityyppistä arvoa, ne vähennetään yhdeksi - tulkin mielestä optimaaliseksi. Esimerkiksi:

Ilmeisesti muuttujat tallentavat eri tyyppisiä arvoja. Mutta kun niitä verrataan, ne pienennetään samantyyppisiksi - numeerisiksi. Ja muuttuja $a pienennetään numeroon 22. Ja lopulta molemmat muuttujat ovat yhtä suuret.

Tai esimerkiksi seuraavat muuttujat ovat myös yhtä suuria:

$a = epätosi; $b = 0;

Tällaisten tilanteiden välttämiseksi käytetään ekvivalenssitoimintoa, joka ottaa huomioon paitsi arvon myös muuttujan tyypin:

$a = "22a"; $b = 22; if($a===$b) echo "yhtä"; else echo "ei tasa-arvoinen";

Nyt muuttujat eivät ole samat.

Epäyhtälöoperaattorit != ja !== toimivat samalla tavalla.

Kaksi päälausetta, jotka tarjoavat ehdollisia haarautumisrakenteita, ovat if ja switch. Yleisimmin käytetty if-lausetta käytetään ehdollisissa hyppyrakenteissa. Toisaalta tietyissä tilanteissa, varsinkin jos joudut navigoimaan yhdessä useista haaroista yksittäisen lausekkeen arvosta riippuen, ja useiden if-lauseiden käyttö johtaa monimutkaisempaan koodiin, switch-käskystä tulee kätevämpi. .

Loogisia operaatioita käytetään tyypillisesti yhdistämään kahden vertailuoperaation tulokset. Meidän on esimerkiksi suoritettava tietty toiminto, jos useat ehdot täyttyvät. Seuraavat loogiset toiminnot ovat käytettävissä:

    Palauttaa tosi, jos molemmat vertailut palauttavat arvon tosi, muussa tapauksessa palauttaa epätosi: $a == 5 && $b = 6

    Samanlainen kuin &&-operaatio: $a == 5 ja $b > 6

    Palauttaa arvon tosi, jos vähintään yksi vertailutoiminto palauttaa arvon tosi, muussa tapauksessa palauttaa arvon epätosi: $a == 5 || $b = 6

    Samanlainen kuin operaatio || : $a< 5 or $b > 6

    Palauttaa arvon tosi, jos vertailutoiminto palauttaa epätosi: !($a >= 5)

    Palauttaa tosi, jos vain yksi arvoista on tosi. Jos molemmat ovat tosi tai kumpikaan ei ole totta, palauttaa epätosi. Esimerkki: $a=12; $b = 6; if($a xor $b) echo "tosi"; else echo "false";

    Tässä loogisen operaation tulos on epätosi, koska molemmilla muuttujilla on tietty arvo. Vaihdetaan koodi:

    $a = 12; $b=NULL; if($a xor $b) echo "tosi"; else echo "false";

    Tässä tulos on jo tosi, koska yhden muuttujan arvoa ei ole asetettu. Jos muuttujan arvo on NULL, sen arvoa käsitellään loogisissa operaatioissa epätosi

Bittitoiminnot

Bittioperaatiot suoritetaan luvun yksittäisille biteille. Numerot otetaan huomioon binäärimuodossa, esimerkiksi 2 binääriesityksessä on 010, numero 7 on 111.

    & (looginen kertolasku)

    Kertominen suoritetaan bitti kerrallaan, ja jos molemmilla operandiilla on yhtä suuri bittiarvo kuin 1, niin operaatio palauttaa 1, muuten palautetaan luku 0 Esimerkiksi: $a1 = 4; //100 $b1 = 5; //101 echo $a1 & $b1; // on yhtä kuin 4

    Tässä binäärijärjestelmän luku 4 on 100 ja luku 5 on 101. Kerro luvut bittikohtaisesti ja saat (1*1, 0*0, 0 *1) = 100, eli luku 4 desimaalimuodossa.

    | (looginen lisäys)

    Kuten looginen kertolasku, toiminto suoritetaan myös binäärinumeroille, mutta nyt palautetaan yksi, jos vähintään yhdessä numerossa on yksi. Esimerkiksi: $a1 = 4; //100 $b1 = 5; //101 echo $a1 | $b1; // on yhtä kuin 5

    ~ (looginen negaatio)

    kääntää kaikki bitit: jos bitin arvo on 1, siitä tulee nolla ja päinvastoin. $b = 5; kaiku ~$b;

    x<

    x>>y - siirtää numeroa x oikealle y numerolla. Esimerkiksi 16>>1 siirtää 16 (joka on 10 000 binäärimuodossa) yhden paikan oikealle, jolloin tuloksena on 1000 tai 8 desimaalissa

Merkkijonojen ketjuttaminen

Pisteoperaattoria käytetään merkkijonojen ketjuttamiseen. Yhdistetään esimerkiksi useita rivejä:

$a="Hei,"; $b=" maailma"; echo $a . $b . "!";

Jos muuttujat edustavat muita tyyppejä kuin merkkijonoja, kuten numeroita, niiden arvot muunnetaan merkkijonoiksi ja sitten tapahtuu myös merkkijonojen yhdistämistoiminto.