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

Но нашето решение не е многу добро: бидејќи ако во низата има не една вредност 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; // елементот постои - ја reдефинираме променливата $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 ?>

Сега по циклусот можеме да направиме услов, кој ќе ја погледне променливата 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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј