⊗ppPmLpFl 124 of 447 menu

PHPda flaglar bilan ishlash

Hozir biz flaglar bilan ishlashni o'rganamiz. Flag - bu faqat ikkita qiymat qabul qiladigan maxsus o'zgaruvchi: true va false. Flaglar yordamida ma'lum bir narsaning yo'qligini tekshiradigan vazifalarni hal qilish mumkin: masalan, massivda ma'lum qiymatga ega element yo'qligini tekshirish mumkin. Keling, boshlaymiz.

Keling, quyidagi vazifani hal qilaylik: sonlar massivi berilgan, unda 3 qiymatiga ega element bor yoki yo'qligini tekshirish kerak. Agar bo'lsa - '+++' chiqaramiz, agar bo'lmasa - '---' chiqaramiz.

Boshlash uchun '+++' chiqarishga harakat qilaylik. Buning uchun massivning barcha elementlarini ko'rib chiqamiz va if bilan joriy element 3 qiymatiga tengmi yo'qmi so'raymiz. Agar teng bo'lsa - '+++' chiqaramiz:

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

Ammo bizning yechimimiz unchali yaxshi emas: agar massivda bitta 3 qiymati emas, balki bir nechta bo'lsa, '+++' bir necha marta chiqadi. Keling, massivni o'zgartiramiz (ikkita 3 qiymatiga ega element qilamiz) va bunga ishonch hosil qilamiz:

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

Muammoni tuzatamiz: agar element topilgan bo'lsa, break yordamida tsiklni tugatamiz:

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

Keling, endi massivda umuman 3 qiymatiga ega element bo'lmasa, '---' chiqadigan qilishga harakat qilaylik. Keng tarqalgan xato - if ga else qo'shishdir - bu holda '---' 3 bo'lmagan barcha elementlar uchun chiqadi:

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

Shunday qilib, else qo'shish g'oyasi - yomon g'oya, ishlamaydi. Shu kabi vazifalarni hal qilish uchun (bunday vazifalar etarlicha tez-tez uchraydi) flaglar deb ataladigan narsalardan foydalaniladi.

Yuqorida eslatib o'tilganidek, flag - bu shunday o'zgaruvchiki, ikki qiymat qabul qilishi mumkin: true yoki false.

Shunday qilib, keling flag o'zgaruvchisini yarataylik quyidagi qiymat bilan: agar u true ga teng bo'lsa, demak massivda 3 elementi bor, agar false bo'lsa, demak bunday element yo'q.

Dastlab flag o'zgaruvchisini false qiymatiga o'rnatamiz - ya'ni massivda 3 elementi yo'q deb hisoblaymiz:

$arr = [1, 2, 3, 4, 5]; $flag = false; // massivda 3 elementi yo'q deb hisoblaymiz

Keyin ilgari qilganimizdek if bilan tsiklni ishga tushiramiz. Agar tsikl massivda 3 elementi borligini aniqlasa - flag o'zgaruvchisini true qiymatiga o'rnatamiz va tsikldan break yordamida chiqamiz:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // massivda 3 elementi yo'q deb hisoblaymiz foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // element bor - $flag o'zgaruvchisini qayta belgilaymiz break; // tsikldan chiqamiz } } ?>

Massivda 3 bormi yo'qmi degan savolga javobni faqat tsikldan keyin berishimiz mumkin. Va bu javob bizda allaqachon bor: tsikldan keyin flag o'zgaruvchisi false da qolishi mumkin yoki tsikl massivda 3 borligini aniqlagan bo'lsa true qiymatiga o'zgartirilgan bo'lishi mumkin:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // bu yerda $flag o'zgaruvchisi true yoki false ga teng ?>

Endi tsikldan keyin if yasashimiz mumkin, u flag o'zgaruvchisiga qaraydi va ekranda '+++' yoki '---' ni chiqaradi:

<?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 berilgan:

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

Ushbu massivda 'c' elementi borligini tekshiring. Agar bo'lsa - '+++' chiqaring, agar bo'lmasa - '---' chiqaring.

Sonning tub yoki tub emasligini tekshiradigan kod yozing. Tub son faqat bitta va o'ziga bo'linadi, boshqa sonlarga bo'linmaydi.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish