⊗ppPmLpFl 124 of 447 menu

PHP'де flag'дар менен иштөө

Азыр биз flag'дар менен иштөөнү үйрөнөбүз. Flag - бул өзгөчө өзгөрмө, ал эки гана маани кабыл ала алат: true жана false. Flag'дардын жардамы менен бир нерсенин жоктугун текшерүүчү маселелерди чечсе болот: мисалы, массивде белгилүү бир мааниси бар элемент жок экендигин текшерсе болот. Келгиле, баштайлы.

Келгиле, төмөнкү маселени чечейли: сандардан турган массив берилген, анда 3 мааниси бар элемент барбы же жокпу экендигин текшерүү керек. Эгер бар болсо - '+++' чыгарабыз, эгер жок болсо - '---' чыгарабыз.

Башында келгиле, '+++' чыгара турганыбызга аракет кылалы. Бул үчүн биздин массивдин бардык элементтерин кыдырып чыгып, if менен - азыркы элемент 3 маанисине барабарбы же жокпу деп сурайбыз. Эгер барабар болсо - '+++' чыгарабыз:

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

Бирок биздин чечимибиз өтө жакшы эмес: анткени эгер массивде бир эле 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 мааниси бар элемент такыр жок болсо, '---' чыкканына аракет кылалы. Кеңири таралган ката - бул биздин if'ке 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 кошуу идеясы - жаман идея, иштебейт. Ушул сыяктуу типтеги маселелерди чечүү үчүн (мындай маселелер жетиштүү кездешет) ошол аталган flag'дарды колдонушат.

Жогоруда айтылгандай, flag - бул мындай өзгөрмө, ал эки маанини гана кабыл ала алат: true же false.

Ошентип, келгиле flag деген өзгөрмө жасайлы төмөнкү маани менен: эгер ал true барабар болсо, анда массивде 3 элементи бар, ал эми эгер false болсо, анда мындай элемент жок.

Башында flag өзгөрмөсүн false маанисине коёбуз - демек, 3 элементи массивде жок деп эсептейбиз:

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

Андан кийин биз мурун кылгандай циклди if менен иштетебиз. Эгер цикл массивде 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 болуп кала алат же маанисин true өзгөртө алат, эгер цикл массивде 3 тапса:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // бул жерде $flag өзгөрмөсү true же false барабар ?>

Эми циклден кийин биз if жасай алабыз, ал 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çeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу