⊗ppPmLpFl 124 of 447 menu

PHP-də bayraqlarla işləmək

İndi biz bayraqlarla işləməyi öyrənəcəyik. Bayraq - yalnız iki dəyər qəbul edə bilən xüsusi dəyişəndir: truefalse. Bayraqların köməyi ilə müəyyən bir şeyin olmamasını yoxlayan vəzifələri həll etmək olar: məsələn, massivdə müəyyən dəyəri olan elementin olmadığını yoxlamaq olar. Gəlin başlayaq.

Gəlin aşağıdakı vəzifəni həll edək: ədədlərdən ibarət massiv verilmişdir, onun daxilində 3 dəyəri olan elementin olub-olmadığını yoxlamaq lazımdır. Əgər varsa - '+++' çap edək, yoxdursa - '---' çap edək.

Əvvəlcə gəlin '+++' çap etməyə çalışaq. Bunun üçün massivimizin bütün elementlərini gəzəcəyik və if ilə soruşacağıq - cari element 3 dəyərinə bərabərdirmi? Əgər bərabərdirsə - '+++' çap edək:

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

Lakin bizim həllimiz çox yaxşı deyil: çünki əgər massivdə bir 3 dəyəri deyil, bir neçə dəyər olarsa, onda '+++' bir neçə dəfə çap olunacaq. Gəlin massivimizi düzəldək (iki elementin dəyərini 3 edək) və buna əmin olaq:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // bir neçə dəfə çap edəcək } } ?>

Problemi düzəldək: əgər element artıq tapılıbsa, break istifadə edərək döngüdən çıxaq:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; break; // döngüdən çıx } } ?>

Gəlin indi elə edək ki, əgər massivdə ümumiyyətlə 3 dəyəri olan element yoxdursa, '---' çap olunsun. Ümumi bir səhv if-ə else əlavə etmək olardı - bu halda '---' 3 olmayan bütün elementlər üçün çap olunacaq:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // 3-cü elementdə çap edəcək } else { echo '---'; // 1, 2, 4, 5-ci elementlərdə çap edəcək } } ?>

Beləliklə, else əlavə etmək fikri - pis fikirdir, işləməz. Bu tip vəzifələri həll etmək üçün (belə vəzifələr kifayət qədər tez-tez rast gəlinir) sözdə bayraqlardan istifadə olunur.

Yuxarıda artıq qeyd olunduğu kimi, bayraq - yalnız iki dəyər qəbul edə bilən dəyişəndir: true və ya false.

Beləliklə, gəlin flag dəyişəni edək bununla belə bir məna verək: əgər o true-a bərabərdirsə, onda massivdə 3 elementi var, əgər false-dırsa, onda belə bir element yoxdur.

Əvvəlcə flag dəyişənini false dəyərinə qoyaq - yəni hesab edək ki, massivdə 3 elementi yoxdur:

$arr = [1, 2, 3, 4, 5]; $flag = false; // hesab edirik ki, massivdə 3 elementi yoxdur

Sonra döngüni if ilə əvvəllər etdiyimiz kimi işə salaq. Əgər döngü aşkar edərsə ki, massivdə 3 elementi var - onda flag dəyişənini true dəyərinə qoyaq və döngüdən break ilə çıxaq:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // hesab edirik ki, massivdə 3 elementi yoxdur foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // element var - $flag dəyişənini yenidən təyin edək break; // döngüdən çıxaq } } ?>

Massivdə 3 olub-olmadığı sualına cavab ancaq döngüdən sonra verə bilərik. Və bu cavab artıq bizdə var: döngüdən sonra flag dəyişəni false olaraq qala bilər ya da dəyərini true olaraq dəyişə bilər, əgər döngü massivdə 3 aşkar etdisə:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // burada $flag dəyişəni ya true, ya da false-dur ?>

İndi döngüdən sonra biz if edə bilərik ki, flag dəyişəninə baxsın və ekranda '+++' və ya '---' çap etsin:

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

Massiv verilmişdir:

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

Yoxlayın ki, bu massivdə 'c' elementi varmı? Əgər varsa - '+++' çap edin, yoxdursa - '---' çap edin.

Elə kod yazın ki, ədədin sadə olub-olmadığını yoxlasın. Sadə ədəd yalnız birə və özünə bölünür, başqa ədədlərə bölünmür.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et