⊗ppPmLpFl 124 of 447 menu

Pengendalian Bendera dalam PHP

Sekarang kita akan belajar mengendalikan bendera. Bendera ialah pembolehubah khas yang hanya boleh mengambil dua nilai: true dan false. Dengan menggunakan bendera, kita boleh menyelesaikan tugas yang memeriksa ketiadaan sesuatu: contohnya, kita boleh memeriksa sama ada dalam array tiada elemen dengan nilai tertentu. Mari kita mulakan.

Mari selesaikan tugas berikut: diberikan array dengan nombor, perlu disemak sama ada ia mengandungi elemen dengan nilai 3 atau tidak. Jika ada - paparkan '+++', jika tidak - paparkan '---'.

Sebagai permulaan, mari cuba paparkan '+++'. Untuk melakukan ini, kita akan ulangi semua elemen array kita dan dengan *if* kita akan bertanya - adakah elemen semasa sama dengan nilai 3. Jika ya - paparkan '+++':

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

Tetapi penyelesaian kami tidak begitu baik: kerana jika dalam array bukan hanya satu nilai 3, tetapi beberapa, maka '+++' akan dipaparkan beberapa kali. Mari betulkan array kami (buat dua elemen dengan nilai 3) dan pastikannya:

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

Mari betulkan masalah ini: hentikan gelung menggunakan break, jika elemen sudah ditemui:

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

Sekarang mari cuba lakukan supaya, jika dalam array tiada langsung elemen dengan nilai 3, '---' dipaparkan. Kesilapan biasa ialah menambah else kepada *if* kami - dalam kes ini '---' akan dipaparkan untuk semua elemen yang bukan 3:

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

Jadi, idea untuk menambah else - adalah idea yang tidak baik, tidak berfungsi. Untuk menyelesaikan tugas jenis seperti ini (tugas seperti ini berlaku agak kerap) apa yang dipanggil bendera digunakan.

Seperti yang disebutkan di atas, bendera ialah pembolehubah sedemikian yang boleh mengambil dua nilai: true atau false.

Jadi, mari buat pembolehubah flag dengan nilai sedemikian: jika ia sama dengan true, maka dalam array ada elemen 3, dan jika false, maka tiada elemen sedemikian.

Pada mulanya, letakkan pembolehubah flag kepada nilai false - iaitu kita akan menganggap bahawa elemen 3 tiada dalam array:

$arr = [1, 2, 3, 4, 5]; $flag = false; // menganggap bahawa elemen 3 tiada dalam array

Kemudian jalankan gelung dengan *if* seperti yang kami lakukan sebelum ini. Jika gelung mengesan bahawa dalam array ada elemen 3 - maka letakkan pembolehubah flag kepada nilai true dan keluar dari gelung dengan break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // menganggap elemen 3 tiada dalam array foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // elemen ada - takrif semula pembolehubah $flag break; // keluar dari gelung } } ?>

Jawapan kepada soalan, sama ada dalam array ada 3 atau tidak, kita hanya boleh berikan selepas gelung. Dan jawapan ini sudah ada pada kami: selepas gelung pembolehubah flag mungkin kekal false atau mungkin telah menukar nilainya kepada true, jika gelung mengesan dalam array 3:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // di sini pembolehubah $flag sama dengan true atau false ?>

Sekarang selepas gelung, kita boleh buat *if*, yang akan melihat pembolehubah flag dan memaparkan pada skrin '+++' atau '---':

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

Diberi array:

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

Periksa sama ada dalam array ini ada elemen 'c'. Jika ada - paparkan '+++', dan jika tidak - paparkan '---'.

Tulis kod yang akan memeriksa sama ada nombor itu perdana atau tidak. Nombor perdana hanya boleh dibahagi dengan satu dan dengan dirinya sendiri, dan tidak boleh dibahagi dengan nombor lain.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak