⊗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 เลย แสดงผล '---' ความเข้าใจผิดที่พบบ่อย คือการเพิ่ม else ให้กับ if ของเรา - ในกรณีนี้ '---' จะ ถูกแสดงผลสำหรับทุกองค์ประกอบที่ไม่ใช่ 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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ