परिचय
goto स्टेटमेंट का उपयोग प्रोग्राम के फ्लो को कोड में एक निश्चित स्थान पर भेजने के लिए किया जाता है। स्थान एक उपयोगकर्ता-परिभाषित लेबल द्वारा निर्दिष्ट किया जाता है। आमतौर पर, goto स्टेटमेंट स्क्रिप्ट में सशर्त अभिव्यक्ति के हिस्से के रूप में आता है जैसे if, else या case (स्विच कंस्ट्रक्ट में)।
सिंटैक्स
statement1;
statement2;
if (expression)
goto label1;
statement3;
label1:
statement4;
स्टेटमेंट 2 के बाद, यदि अभिव्यक्ति (if स्टेटमेंट के हिस्से के रूप में) सत्य है, तो प्रोग्राम फ्लो label1 पर निर्देशित होता है। यदि यह सत्य नहीं है, तो स्टेटमेंट 3 निष्पादित होगा। प्रोग्राम बाद में सामान्य फ्लो में जारी रहता है।
उदाहरण
उदाहरण 1: सम संख्या के लिए लेबल पर कूदना
निम्न उदाहरण में, यदि उपयोगकर्ता द्वारा इनपुट की गई संख्या सम है, तो प्रोग्राम निर्दिष्ट लेबल पर कूदता है:
<?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
उदाहरण 2: goto के साथ लूप निर्माण
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
उदाहरण 3: लूप के अंदर कूदने पर प्रतिबंध
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