⊗ppPmLpFl 124 of 447 menu

PHP-те флагтармен жұмыс

Қазір біз флагтарпен жұмыс істеуді үйренеміз. Флаг - бұл тек екі мән қабылдай алатын арнайы айнымалы: true және false. Флагтардың көмегімен бірдеменің жоқтығын тексеретін есептерді шешуге болады: мысалы, массивте белгілі бір мәні бар элементтің жоқ екенін тексеруге болады. Бастайық.

Келесі есепті шешейік: сандар массиві берілген, онда 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 қосу - бұл жаман идея, жұмыс істемейтін. Осындай түрдегі есептерді (мұндай есептер жиі кездеседі) шешу үшін флагтар деп аталатын әдісті қолданады.

Жоғарыда айтылғандай, флаг - бұл екі мән қабылдай алатын айнымалы: 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 файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау