⊗ppPmLpFl 124 of 447 menu

Kufanya Kazi na Bendera katika PHP

Hivi sasa tutajifunza kufanya kazi na bendera. Bendera ni tofauti maalum ambayo inaweza kuchukua thamani mbili tu: true na false. Kwa kutumia bendera unaweza kutatua kazi zinazohitaji kukagua kutokuwepo kwa kitu: Kwa mfano, unaweza kukagua ikiwa kuna kipengele na thamani fulani katika safu (array). Wacha tuanze.

Wacha tutatue kazi ifuatayo: tuna safu ya nambari, unahitaji kukagua ikiwa kuna kipengele na thamani 3 ndani yake au la. Ikiwa kipo - tutaweka '+++', ikiwa hakipo - tutaweka '---'.

Kwanza, wacha tujaribu kuweka '+++'. Ili kufanya hivyo, tutapitia vipengele vyote vya safu yetu na kwa kutumia 'if' tutauliza - je, kipengele cha sasa ni sawa na thamani 3? Ikiwa ni sawa - tutaweka '+++':

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

Lakini ufumbuzi wetu sio mzuri sana: kwani ikiwa safu itakuwa na thamani 3 si moja tu, lakini kadhaa, basi '+++' itawekwa mara kadhaa. Wacha turekebishe safu yetu (tufanye vipelekezi viwili na thamani 3) na tukae hakika na jambo hili:

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

Wacha tusahihishe tatizo: tutamaliza kitanzi kwa kutumia break, ikiwa kipengele tayari kimepatikana:

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

Wacha sasa tujaribu kufanya ili, ikiwa hakuna vipengele vyovyote na thamani 3 kwenye safu, iweke '---'. Hitilafu ya kawaida itakuwa kuongeza else kwenye 'if' yetu - kwa hali hii '---' itawekwa kwa vipengele vyote visivyo 3:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // itawekwa kwenye kipengele 3 } else { echo '---'; // itawekwa kwenye vipelekezi 1, 2, 4, 5 } } ?>

Kwa hivyo, wazo la kuongeza else - ni wazo baya, haliifanyi kazi. Ili kutatua kazi za aina hii (kazi kama hizi hupatikana mara kwa mara) hutumia kinachojulikana kama bendera.

Kama tulivyoeleza hapo juu, bendera ni tofauti ya namna hiyo, ambayo inaweza kuchukua thamani mbili: true au false.

Basi, wacha tufanye tofauti flag na thamani kama ifuatavyo: ikiwa ni sawa na true, basi kuna kipengele 3 kwenye safu, na ikiwa ni false, basi hakuna kipengele kama hicho.

Mwanzoni weka tofauti flag kuwa na thamani false - yaani tutaona kwamba, hakuna kipengele 3 kwenye safu:

$arr = [1, 2, 3, 4, 5]; $flag = false; // tunaona kwamba hakuna kipengele 3 kwenye safu

Kisha tutaanzisha kitanzi na 'if' kama tulivyofanya hapo awali. Ikiwa kitanzi kitagundua kuwa kwenye safu kuna kipengele 3 - basi tunaweka tofauti flag kuwa na thamani true na tutatoka kwenye kitanzi kwa kutumia break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // tunaona kwamba hakuna kipengele 3 kwenye safu foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // kipengele kipo - badilisha thamani ya tofauti $flag break; // toka kwenye kitanzi } } ?>

Jibu la swali, ikiwa kuna 3 kwenye safu au la, tunaweza kutoa tu baada ya kitanzi. Na jibu hilo tayari tumelipata: baada ya kitanzi tofauti flag inaweza kubaki false au inaweza kubadilisha thamani yake kuwa true, ikiwa kitanzi kiligundua 3 kwenye safu:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // hapa tofauti $flag ni sawa na true, au false ?>

Sasa baada ya kitanzi, tunaweza kuweka 'if', ambao utaangalia tofauti flag na utaweka '+++' au '---' kwenye skrini:

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

Tuna safu:

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

Kagua ikiwa kwenye safu hii kuna kipengele 'c'. Ikiwa kipo - weka '+++', na ikiwa hakipo - weka '---'.

Andika msimbo ambao utakagua nambari ikiwa ni ya kwanza au la. Nambari ya kwanza inagawanyika tu kwa moja na yenyewe, na haigawanyiki kwa nambari zingine.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa