TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #49 3.45K
دستور goto در PHP برای انتقال جریان اجرای برنامه به یک نقطه مشخص در کد استفاده می‌شود. این نقطه مشخص با یک برچسب (label) تعیین می‌شود. اگرچه استفاده از goto معمولاً توصیه نمی‌شود، زیرا می‌تواند کد را پیچیده و غیرقابل خواندن کند، اما در برخی موارد خاص می‌تواند مفید باشد.

دستور 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
  • 👍 15
More from @developixphp
  1. Sep 26, 2026این کد موقع اجرا چه خروجی‌ای می‌ده و مشکلش کجاست؟ 🔖 #PHP #پی_اچ_پی 👤 Developix 💎 Channe…
  2. Sep 25, 2026🔥 پکیج: قراردادهای ترجمه سیمفونی اگر کد PHP را برای چندزبانگی می‌نویسید، بهتر است منطق بر…
  3. Sep 16, 2026🚀 &rlm;LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  4. Sep 11, 2026ارسال ایمیل تأیید ثبت‌نام، بازیابی رمز عبور یا نوتیفیکیشن سفارش، تقریباً توی هر پروژه‌ PHP…
  5. Sep 10, 2026برنامه نویسی سوکت در PHP بخش اول عبارت دیگر در ارتباط های غیر سوکت برای ارسال یک پالس از س…
  6. Aug 31, 2026🔥 پکیج: استاندارد PSR-11 برای Container استاندارد PSR-11 فقط یه interface مشترک برای Cont…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →