แนะนำตัว
ไปที่ คำสั่งที่ใช้ในการส่งกระแสของโปรแกรมไปยังตำแหน่งที่แน่นอนในรหัส ตำแหน่งถูกระบุโดยป้ายกำกับที่ผู้ใช้กำหนด โดยทั่วไป คำสั่ง 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