دستور goto به این شکل نوشته میشود:
goto label;
label:
// Code to execute
مثال:
فرض کنید یک حلقه for داریم که در آن یک شرط خاص را بررسی میکنیم. اگر این شرط برقرار باشد، میخواهیم بلافاصله به یک بخش دیگر از کد بپریم و ادامه حلقه را نادیده بگیریم. مثال زیر را در نظر بگیرید:
for ($i = 0; $i < 10; $i++) {
if ($i == 5) {
goto end;
}
echo "Current value of i: $i\n";
}
end:
echo "Loop terminated because i equals 5.";در این مثال، حلقه از 0 تا 9 اجرا میشود، اما وقتی مقدار $i به 5 میرسد، دستور goto end اجرا میشود و برنامه به برچسب end منتقل میشود. نتیجه این است که حلقه متوقف میشود و پیغام "Loop terminated because i equals 5." نمایش داده میشود.
استفاده از goto میتواند باعث کاهش خوانایی کد شود. اگر کد پیچیده و طولانی باشد، دنبال کردن جریان اجرای برنامه میتواند دشوار شود.
در بیشتر موارد، میتوان از ساختارهای کنترلی دیگر مانند break، continue و return استفاده کرد که خواناتر و مناسبتر هستند.
مثال دیگر:
فرض کنید نیاز داریم یک فایل را بخوانیم و اگر به یک خط خاص برسیم، به یک بخش دیگر از کد بپریم:
$file = fopen("example.txt", "r");
if ($file) {
while (($line = fgets($file)) !== false) {
if (strpos($line, 'special keyword') !== false) {
goto specialProcessing;
}
echo "Reading line: $line";
}
fclose($file);
}
specialProcessing:
echo "Special processing for a line containing 'special keyword'.";در اینجا، فایل example.txt خط به خط خوانده میشود و اگر خطی شامل کلمه کلیدی 'special keyword' باشد، جریان برنامه به برچسب specialProcessing منتقل میشود.
دستور goto در PHP ابزار قدرتمندی است که میتواند در موارد خاص مفید باشد، اما باید با احتیاط و در شرایط مناسب استفاده شود. استفاده بیش از حد یا نابجا از goto میتواند کد را پیچیده و سختخوان کند، بنابراین همیشه به دنبال راهحلهای جایگزین و مناسبتر باشید.
👤 AmirHossein
💎 Channel: @DevelopixPHP