แนะนำตัว
ไปที่ คำสั่งที่ใช้ในการส่งกระแสของโปรแกรมไปยังตำแหน่งที่แน่นอนในรหัส ตำแหน่งถูกระบุโดยป้ายกำกับที่ผู้ใช้กำหนด โดยทั่วไป คำสั่ง goto จะอยู่ในสคริปต์โดยเป็นส่วนหนึ่งของนิพจน์เงื่อนไข เช่น if, else หรือ case (ในโครงสร้างสวิตช์)
ไวยากรณ์
statement1; statement2; if (expression) goto label1; statement3; label1: statement4;
หลังประโยคที่ 2 หากนิพจน์ (เป็นส่วนหนึ่งของคำสั่ง if) เป็นจริง โฟลว์ของโปรแกรมจะถูกส่งไปยัง label1 . หากไม่เป็นความจริง คำสั่ง 3 จะถูกดำเนินการ โปรแกรมดำเนินไปตามปกติหลังจากนั้น
ในตัวอย่างต่อไปนี้ หากผู้ใช้ป้อนตัวเลขเป็นเลขคู่ โปรแกรมจะข้ามไปยังป้ายกำกับที่ระบุ
ตัวอย่าง
<?php $x=(int)readline("enter a number"); if ($x%2==0) goto abc; echo "x is an odd number"; return; abc: echo "x is an even number"; ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
x is an even number
เลเบลด้านหน้าคีย์เวิร์ด goto สามารถปรากฏก่อนหรือหลังคำสั่งปัจจุบัน หากป้ายกำกับในคำสั่ง goto ระบุคำสั่งก่อนหน้า จะถือเป็นการวนซ้ำ
ตัวอย่างการหลอกลวงแสดงการวนซ้ำที่สร้างด้วยคำสั่ง goto
ตัวอย่าง
<?php $x=0; start: $x++; echo "x=$x\n"; if ($x<5) goto start; ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
x=1 x=2 x=3 x=4 x=5
การใช้ goto การควบคุมโปรแกรมสามารถข้ามไปยังตำแหน่งที่ระบุชื่อได้ อย่างไรก็ตาม ไม่อนุญาตให้กระโดดลงกลางวง
ตัวอย่าง
<?php for ($x=1; $x<=5; $x++){ if (x==3) goto inloop; for ($y=1;$y<=5; $y++){ inloop: echo "x=$x y=$y\n"; } } ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
PHP Fatal error: 'goto' into loop or switch statement is disallowed in line 5