goto คำสั่งที่เพิ่มใหม่ใน PHP 5.3 เขียนเมื่อ 2009.07.15 โดย

ใน PHP 5.3 มีความสามารถและฟังก์ชั่นที่เพิ่มใหม่มาเยอะเหมือนกัน คำสั่งหนึ่งที่ถูกเพิ่มเข้ามาคือ goto คำสั่งสมัยโบราณ แต่ก็ถูกเพิ่มเข้ามาเพื่อเพิ่มช่องทางในการแก้ปัญหาในบางประการ ตัวคำสั่งก็ตรงตามชื่อคืการไปยัง label ที่ได้ระบุไว้ เช่น
PHP
  1. <?
  2. goto hi;
  3. echo "Hello";
  4.  
  5. hi:
  6. echo "Hi";
  7. ?>

จากตัวอย่างข้างต้น จะไม่มีการแสดงผล Hello เนื่องจากจะกระโดดข้ามไปที่ label "hi" และทำงานต่อไปเรื่อยๆ ซึ่งจะแสดงผล Hi ออกมา

ส่วนประโยชน์ของ goto ที่มองเห็นได้ชัดเจนคือ การติดใน loop ที่ซับซ้อน
PHP
  1. <?
  2. for($i = 0; $i < count($data); $i++){
  3.     for($j = 0; $j < count($data[$i]); $j++){
  4.         if($data[$i][$j] == "PATTERN"){
  5.             goto dataFound;
  6.         }
  7.     }
  8. }
  9. echo "PATTERN was not found";
  10.  
  11. dataFound:
  12. echo "PATTERN weer found";
  13. ?>

เนื่องจากปกติการที่มี loop ซ้อนกันนั้น เราไม่สามารถใช้ break; เพื่อออกจาก loop ทั้งหมดได้ ในที่นี้ goto ก็มีประโยชน์ช่วยได้มาก

แต่การใช้ goto ก็ต้องระวังเช่นกัน เนื่องจากการกระโดดข้ามไปที่ label นั้นจะทำงานในคำสั่งต่อมาเรื่อยๆ ซึ่งถ้าวางตำแหน่ง label ไม่ดีอาจจะเกิด infinite loop ขึ้นมาได้เช่นกัน เช่น




คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย