مقاله قبلی: عبارات شرطی در PHP
گاهی اوقات زمانی که یک کد را می نویسید، قصد دارید بلوکی از کدهای مشابه (مجموعه ای از دستورات) را چندین بار در یک سطر اجرا کنید. به جای اضافه کردن چندین خط کد مشابه و تکرار آنها می توانید از حلقه ها به جای اینکار استفاده کنید.
حلقه ها برای تکرار اجرای مجموعه ای از کدهای مشابه تا زمانی که شرط برقرار شود استفاده می شود.
زبان PHP از 4 نوع حلقه پشتیبانی می کند:
- While دستورات تا زمانی که شرط تعیین شده در حلقه صحیح باشد اجرا می شود.
- do…while دستورات یک بار اجرا می شوند و سپس شرط بررسی می شود در مراحل بعدی اگر شرط حلقه درست باشد، دستورات اجرا می شوند.
- for دستورات داخل حلقه از یک عدد مشخص به تعدادی مشخص تکرار می شود.
- foreach دستورات داخل حلقه برای هر جز در یک آرایه کاربرد دارد. (برای کار با آرایه)
با کلیک بر روی تصاویر آنها را در ابعاد بزرگتر مشاهده کنید.
حلقه while در PHP
حلقه while در PHP دستورات را تا زمانی که شرط تعیین شده در حلقه صحیح باشد اجرا می کند. یعنی این حلقه تا زمانی که شرط یا شروط تعیین شده در مقابل عبارت while درست باشد دستورات درون خود را اجرا میکند.
دستورالعمل یا سینتکس
در مثال زیر ابتدا مقدار متغیر x را 1 قرار می دهد. سپس تا زمانی که x$ کمتر یا مساوی 5 است حلقه while اجرا خواهد شد. در کد حلقه ابتدا مقدار کنونی x چاپ می شود و سپس با عملگر افزایشی در هر بار اجرای حلقه، یک واحد به مقدار کنونی متغیر اضافه می شود (++x$). کد حلقه تا زمانی که مقدار x کمتر مساوی 5 باشد اجرا خواهد شد.
در مثال بالا اعداد 1 تا 5 چاپ می شود.
حلقه do…while
مجموعه ای از دستورات را فقط یکبار اجرا میکند سپس شرط را چک می کند و تا زمانی که شرط درست باشد حلقه اجرا می شود.
سینتکس
در مثال زیر ابتدا مقدار متغیر x را 1 قرار می دهد. دستور echo در درون حلقه Do… while مقدار x را چاپ میکند و با عملگر افزایشی ++ مقدار کنونی متغیر x را یک واحد افزایش می دهد. سپس شرط داخل While بررسی می شود اگر شرط برقرار باشد (متغیرx کمتر یا مساوی 5 باشد؟) کد اجرا خواهد شد و حلقه تا زمانی که x$ کمتر یا مساوی 5 باشد اجرا خواهد شد.
توجه داشته باشید که در حلقه do while شرط بعد از اجرای دستورات در طول حلقه تست می شود یعنی شرط این حلقه در انتها قرار دارد. به این معنی که حلقه do while دستورات را یکبار اجرا می کند حتی اگر شرط برای اولین بار نادرست باشد.
در مثال زیر مقدار متغیرx را 6 قرار می دهد، با دستور echo مقدار متغیر x چاپ می شود و با عملگر افزایشی ++ یک واحد به متغیر x اضافه می شود سپس شرط بررسی شده اگر شرط درست بود حلقه اجرا می شود در غیر این صورت از حلقه خارج شده و دستورات بعدی اجرا می شود.
حلقه for
دستورات داخل حلقه for از یک عدد مشخص به تعدادی مشخص تکرار می شود، حلقه for زمانی استفاده می شود که تعداد دفعات اجرای دستورات را بدانید.
سینتکس
پارامترها
init: تعریف و مقدار دهی یک شمارشگر حلقه است.
test: ارزیابی تکرار حلقه. اگر شرط صحیح باشد حلقه ادامه پیدا می کند و دستورات جرا می شوند. اگر شرط غلط باشد حلقه به انتها می رسد و دستورات ادامه نمی یابند.
Increment: مقدار شمارنده حلقه را افزایش می دهد.
مثال زیر اعداد از 0 تا 10 را نمایش می دهد:
حلقه foreach
حلقه foreach تنها روی آرایه ها کار میکند. این دستور تمام مقادیر آرایه را یکی یکی از ابتدایی تا انتهایی به درون value می ریزد و دستورات را اجرا می نماید.
سینتکس
برای هر تکرار حلقه مقدار کنونی عنصر آرایه به value$ اختصاص داده می شود و اشاره گر آرایه یک واحد حرکت داده می شود تا زمانی که به آخرین عنصر آرایه برسد.
مثال زیر ابتدا یک آرایه با نام colors$ ایجاد شده است که عناصر آن به ترتیب عبارتند از: yellow, blue, green,red.
در حلقه ی foreach ابتدا نام آرایه ذکر شده و سپس با استفاده از دستور echo متغیر value$ را چاپ کرده است. متغیر value$ در هر گام، یکی از عناصر آرایه را در بر خواهد گرفت بنابراین با چاپ این متغیر، تمامی عناصر موجود در آرایه چاپ خواهند شد.
ترجمه و تحقیق: زهرا صـانعی