⊗ppPmLpFl 124 of 447 menu

PHPда флаглар билан ишлаш

Ҳозир биз флаглар билан ишлашни ўрганамиз. Флаг - бу фақат икки қиймат қабул қиладиган махсус ўзгарувчи бўлиб, у true ва false бўлиши мумкин. Флаглар ёрдамида бирор нарсанинг йўқлигини текширадиган масалаларни ечиш мумкин: масалан, массивда маълум қийматли элемент йўқлигини текшириш мумкин. Келгила, бошлаймиз.

Келгила, куйидаги масалани ечайлик: сонлардан ташкил топган массив берилган бўлиб, унда 3 қийматли элемент бор-йўқлигини текшириш керак. Агар бор бўлса - '+++' чиқаринг, йўқ бўлса - '---' чиқаринг.

Бошлаш учун келгила, '+++' чиқаришга ҳаракат қилайлик. Бунинг учун биз массивимизнинг ҳамма элементларини айланиб чиқамиз ва иф орқали ҳар бир элемент 3 қийматга тенг-йўқлигини сўраймиз. Агар тенг бўлса - '+++' чиқарамиз:

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

Aммо бизнинг ечимимиз жуда яхши эмас: чунки агар массивда битта 3 қиймат эмас, бир нечта бўлса, '+++' бир неча марта чиқади. Келгила, массивимизни ўзгартирамиз (иккита 3 қийматли элемент қиламиз) ва буни ишонч билан кўрамиз:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // бир неча марта чиқади } } ?>

Муаммони тузатамиз: агар элемент топилган бўлса, break ёрдамида циклни тугатамиз:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; break; // циклни тугатамиз } } ?>

Энди келгила, массивда умуман 3 қийматли элемент йўқ бўлса, '---' чиқариладиган қилиб кўрайлик. Таниш нотўғри усул - бу бизнинг ифимизга else қўшиш - бу ҳолда '---' 3 бўлмаган ҳамма элементлар учун чиқади:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // 3 элементида чиқади } else { echo '---'; // 1, 2, 4, 5 элементларида чиқади } } ?>

Демак, else қўшиш ғояси - ноишлайдиган ёмон ғоя. Шундай масалаларни ечиш учун (бундай масалалар етарлича тез-тез учрайди) флаглар деб аталувчи нарсадан фойдаланилади.

Юқорида зикр қилингандек, флаг - бу икки қийматни қабул қиладиган ўзгарувчи бўлиб, true ёки false бўлиши мумкин.

Демак, келгила flag ўзгарувчисини қилайлик: агар у true га тенг бўлса, массивда 3 элементи бор, агар false бўлса, бундай элемент йўқ.

Бошланғич ҳолда flag ўзгарувчисини false қийматига қўямиз - яъни массивда 3 элементи йўқ деб ҳисоблаймиз:

$arr = [1, 2, 3, 4, 5]; $flag = false; // массивда 3 элементи йўқ деб ҳисоблаймиз

Сўнгра биз аввал қилганимиздек циклни иф билан ишга туширамиз. Агар цикл массивда 3 элементи борлигини аниқласа - flag ўзгарувчисини true қийматига ўзгартирамиз ва break ёрдамида циклдан чиқамиз:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // массивда 3 элементи йўқ деб ҳисоблаймиз foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // элемент бор - $flag ўзгарувчисини қайта таърифлаймиз break; // циклдан чиқамиз } } ?>

Массивда 3 бор-йўқлиги ҳақидаги саволга жавоб биз фақат циклдан кейингина бера оламиз. Ва бу жавоб бизда аллақачон мавжуд: циклдан кейин flag ўзгарувчиси false бўлиб қолиши ёки агар цикл массивда 3 топган бўлса, true қийматига ўзгариши мумкин:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // бу ерда $flag ўзгарувчиси true ёки false га тенг ?>

Энди циклдан кейин биз flag ўзгарувчисига қарайдиган ифни қила оламиз, ва экранга '+++' ёки '---' ни чиқара оламиз:

<?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 '---'; } ?>

Массив берилган:

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

Бу массивда 'c' элементи борлигини текширинг. Агар бор бўлса - '+++' чиқаринг, йўқ бўлса - '---' чиқаринг.

Соннинг туб ёки туб эмаслигини текширадиган код ёзинг. Туб сон фақат бирга ва ўзига бўлинади, бошқа сонларга бўлинмайди.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш