⊗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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა