⊗ppPmLpFl 124 of 447 menu

Lippude kasutamine PHP-s

Nüüd õpime töötama lippudega. Lipp on spetsiaalne muutuja, mis võib võtta ainult kaks väärtust: true ja false. Lippude abil saab lahendada ülesandeid, mis kontrollivad millegi puudumist: näiteks saab kontrollida, kas massiivis ei ole elementi kindla väärtusega. Hakkame pihta.

Lahendame järgmise ülesande: antud on massiiv arvudega, tuleb kontrollida, kas selles on element väärtusega 3 või mitte. Kui on - väljastame '+++', kui ei - väljastame '---'.

Alustuseks proovime väljastada '+++'. Selleks loeme läbi kõik meie massiivi elemendid ja if-iga küsime - kas praegune element on võrdne väärtusega 3. Kui on - väljastame '+++':

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; } } ?>

Aga meie lahendus pole eriti hea: sest kui massiivis poleks üks väärtus 3, vaid mitu, siis '+++' väljastatakse mitu korda. Parandame oma massiivi (teeme kaks elementi väärtusega 3) ja veendume selles:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // väljastab mitu korda } } ?>

Parandame probleemi: lõpetame tsükli abiga break, kui element on juba leitud:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; break; // lõpetame tsükli } } ?>

Proovime nüüd teha nii, et kui massiivis üldse pole elemente väärtusega 3, väljastataks '---'. Levinud eksiarvamus on lisada else meie if-ile - sel juhul '---' väljastatakse kõikidele elementidele, mis ei ole 3:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // väljastab elemendil 3 } else { echo '---'; // väljastab elementidel 1, 2, 4, 5 } } ?>

Niisiis, idee lisada else - halb idee, ei tööta. Sellist tüüpi ülesannete lahendamiseks (sellised ülesanded esinevad piisavalt sageli) kasutatakse nn lippe.

Nagu juba eespool mainitud, on lipp selline muutuja, mis võib võtta kaks väärtust: true või false.

Niisiis, teeme muutuja flag sellise väärtusega: kui see on võrdne true, siis massiivis on element 3, aga kui false, siis sellist elementi pole.

Algselt paneme muutuja flag väärtuseks false - see tähendab, et loeme, et elementi 3 massiivis pole:

$arr = [1, 2, 3, 4, 5]; $flag = false; // loeme, et elementi 3 pole massiivis

Seejärel käivitame tsükli if-iga nii, nagu me tegime seda varem. Kui tsükkel tuvastab, et massiivis on element 3 - siis paneme muutuja flag väärtuseks true ja väljume tsüklist abil break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // loeme, et elementi 3 pole massiivis foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // element on olemas - määrame muutuja $flag ümber break; // väljume tsüklist } } ?>

Vastuse küsimusele, kas massiivis on 3 või mitte, saame anda alles pärast tsüklit. Ja see vastus on meil juba olemas: pärast tsüklit muutuja flag võib jääda false või võis muuta oma väärtuse true-ks, kui tsükkel tuvastas massiivis 3:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // siin on muutuja $flag võrdne kas true või false ?>

Nüüd saame pärast tsüklit teha if-i, mis vaatab muutujat flag ja väljastab ekraanile '+++' või '---':

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } if ($flag === true) { echo '+++'; } else { echo '---'; } ?>

Antud on massiiv:

<?php $arr = ['a', 'b', 'c', 'd', 'e']; ?>

Kontrollige, kas selles massiivis on element 'c'. Kui on - väljastage '+++', aga kui ei - väljastage '---'.

Kirjutage kood, mis kontrollib arvu, kas see on algarv või mitte. Algarv jagub ainult ühega ja iseendaga, ning ei jagu teistele arvudele.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu