آموزش حلقه foreach در PHP – به زبان ساده با مثال و کد
حلقه foreach یکی از ساختارهای مهم در زبان برنامه نویسی PHP است که پیمایش سریع و آسان بر روی مجموعه دادههای مختلف را امکانپذیر میکند. این ساختار قدرتمند به دلیل سینتکس ساده خود خوانایی کد را بهبود میبخشد و نسبت به سایر حلقههای تکرار موجود احتمال بروز خطا را نیز کاهش میدهد. علاوه بر این، سرعت اجرا حلقه foreach نسبت به سایر حلقهها در PHP بیشتر است. بر همین اساس با توجه به اهمیت و کاربردهای متعدد این ساختار در این مطلب از مجله فرادرس نحوه استفاده از حلقه foreach در PHP و چگونگی عملکرد آن را در قالب نمونه مثالهای مختلف بررسی خواهیم کرد.
- یاد میگیرید چگونه از حلقه foreach برای پیمایش آرایه و اشیا استفاده کنید.
- مزیتهای foreach نسبت به سایر حلقههای PHP را یاد خواهید گرفت.
- نحوه کدنویسی حلقه foreach را یاد میگیرید.
- روشهای کنترل اجرای حلقه foreach با break و continue را میآموزید.
- با کاربرد foreach در پیمایش آرایههای چندبعدی و انجمنی آشنا میشوید.
- تفاوتهای کلیدی foreach و for را درک خواهید کرد.

علاوه بر این، ضمن بررسی سینتکس، کاربردها و مزایای استفاده از حلقه foreach در PHP سعی شده است تا مقایسه کاملی بین این ساختار و حلقه for نیز صورت گیرد. با مطالعه این مطلب نحوه کار با حلقه foreach را بهطور کامل فرا خواهید گرفت و میتوانید از این ساختار برای پیمایش عناصر آرایه یا اشیا استفاده کنید.
حلقه foreach در PHP چیست؟
حلقه foreach در PHP چگونه کار می کند؟
در مثال بالا متغیر$array آرایهای را نشان میدهد که قصد پیمایش عناصر موجود در آن را داریم. همچنین، عنصر فعلی آرایه در متغیر$value نگهداری میشود که در حین پیمایش عناصر میتوان به مقدار آن دسترسی داشت. به زبان ساده در هر مرتبه اجرا حلقه foreach مقدار عنصر فعلی آرایه در متغیر$value نگهداری میشود.

چرا از حلقه foreach در PHP استفاده می کنیم؟
مهمترین دلیل استفاده از حلقه foreach سینتکس ساده آن است. با استفاده از این حلقه خاص به سادگی تنها با چند خط کد میتوان تمام عناصر موجود در یک آرایه یا شی را پیمایش کرد.
مثالی از پیمایش عناصر آرایه با حلقه foreach در PHP
حلقه foreach ابزاری بسیار قدرتمند برای پیمایش عناصر آرایهها یا اشیا است که رویکردی شهودیتر در هنگام کار با مجموعه دادهها ارائه میکند. استفاده از حلقه foreach کد را خواناتر و نگهداری آن را سادهتر میکند. برای درک بهتر این مطلب به مثال زیر توجه کنید.
در مثال بالا آرایه$fruits دارای ۳ عنصر با نامهایApple ،Banana وCherry است. حلقه foreach پیمایش را روی عناصر این آرایه انجام میدهد و در هر مرتبه از اجرا حلقه متغیر$fruit عنصر مورد نظر را در خروجی چاپ میکند. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
Apple
Banana
Cherryبا استفاده از حلقه foreach در PHP به سادگی میتوان عناصر موجود در آرایه را پردازش کرد و کدی بدون خطا و شهودی نوشت.
مزایای حلقه foreach در PHP؟
توسعه دهندگان برای پیمایش آرایهها و اشیا در زبان PHP با استفاده از ساختار حلقه چندین انتخاب پیشِ روی خود دارند. ساختارهای حلقه تکرار در PHP به شرح زیر هستند.
- حلقه for
- حلقه while
- حلقه foreach
با این حال حلقه foreach نسبت به سایر موارد بالا به چند دلیل برتری دارد و گزینه مناسبتری محسوب میشود.
۱.خوانایی و سهولت استفاده
حلقههای foreach برای پیمایش آرایهها و اشیا ساختار سادهتری دارند و از خوانایی بیشتری نیز برخوردار هستند. این نوع حلقهها دیگر نیازی به تعریف متغیر شمارنده حلقه یا بررسی شرط اجرا حلقه ندارند. در حالی که در ساختارهای حلقه for و while باید متغیر شمارنده حلقه و شرط اجرا حلقه را نوشت. برای این منظور مثال زیر آورده شده است که حلقه for را با حلقه foreach در PHP مقایسه میکند.
در مثال بالا حلقه foreach نسبت به for سادهتر و راحتتر خوانده میشود، زیرا این ساختار به طور مستقیم با عناصر آرایه سروکار دارد.
۲. عملکرد بهتر در آرایههای بزرگتر
۳. ساختار تکرار سادهتر برای پیمایش آرایههای انجمنی
حلقه foreach گزینه مناسبی برای انجام پیمایش روی «آرایههای انجمنی» (associative arrays) است. این ساختار به توسعهدهندگان امکان میدهد بدون نیاز به نوشتن کد اضافی به هر دو فیلد کلید و مقدار دسترسی داشته باشند. قطعه کد زیر پیمایش یک آرایه انجمنی با استفاده حلقه foreach را نشان میدهد.
در مثال بالا متغیر$userInfo یک آرایه انجمنی است که با استفاده از حلقه foreach به سادگی میتوان به تمام فیلدهای کلید و مقدار موجود در آن دسترسی پیدا کرد.
۴. کنترل خودکار نشانگرهای آرایه
حلقه foreach در PHP به طور خودکار نشانگر آرایه را کنترل میکند. این مورد سبب میشود تا پیمایش از ابتدای آرایه شروع شده و تمامی عناصر موجود در آن پیمایش شوند. در نتیجه، احتمال بروز خطاهای ناشی از مدیریت دستی آرایهها با توابعی همچونcurrent() ،next() وreset() به میزان قابل توجهی کاهش مییابد.
۵. خطای کمتر
با توجه به این که در حلقه foreach نیازی به تعریف متغیر شمارنده حلقه و کنترل دستی شرط اجرا حلقه وجود ندارد. در نتیجه، استفاده از این ساختار احتمال بروز خطاهای رایج همچون فراموش کردن بهروزرسانی شمارنده حلقه یا سایر خطاهای معمول را کاهش میدهد. این مورد منجر به تولید کد قویتر با قابلیت نگهداری بالاتر میشود.

چگونه زبان برنامه نویسی PHP را یاد بگیریم؟
PHP یکی از محبوبترین و پرکاربردترین زبانهای برنامه نویسی است که به شکل گستردهای در طراحی و توسعه وبسایتهای مختلف مورد استفاده قرار میگیرد. بنابراین، انتخاب این زبان برنامه نویسی برای مسیر شغلی گزینه بسیار خوبی محسوب میشود. صرف نظر از این که قصد یادگیری PHP برای توسعه مهارتهای خود را دارید یا میخواهید به تازگی در این مسیر قدم بگذارید، در هر صورت، انتخاب منبع مناسب برای یادگیری یکی از مهمترین نکاتی است که باید در نظر داشته باشید. انتخاب منبع مناسب از آن جهت حائز اهمیت است که به شما کمک میکند تا در کمترین زمان و با صرف کمترین هزینه بتوانید به اهداف خود دست یابید.

برای یادگیری زبان برنامه نویسی PHP توصیه میشود که ابتدا مفاهیم و ساختارهای پایه موجود در این زبان را یاد بگیرید. سپس، میتوانید با پیادهسازی پروژههای کوچک مفاهیم آموخته شده خود را در عمل نیز به کار گیرید و فرایند یادگیری خود را تکمیل کنید. برای داشتن یک نقشه راه یادگیری میتوانید دورههای پیشنهادی زیر را به ترتیب ارائه مشاهده کنید.
- فیلم آموزش برنامه نویسی PHP فرادرس
- فیلم آموزش پروژه محور ساخت موتور جستجو برای وب سایت با PHP فرادرس
- فیلم آموزش پروژه محور ساخت وبلاگ شخصی با PHP فرادرس
- فیلم آموزش پروژه محور طراحی سایت فروشگاهی با PHP فرادرس
کاربردهای حلقه foreach در PHP چیست؟
حلقه foreach در PHP به منظور پیمایش روی آرایهها و اشیا کاربرد دارد. این ساختار راهی آسان برای دسترسی به عناصر موجود در آرایه بدون نیاز به مدیریت شمارنده حلقه را فراهم میکند. تا به اینجا نحوه پیمایش عناصر موجود در آرایه توسط حلقه foreach را بررسی کردهایم، اما این ساختار انعطافپذیری بالایی دارد و میتوان سناریوهای مختلفی را توسط آن پیادهسازی کرد.

در ادامه این بخش به بررسی کاربردهای مختلف حلقه foreach در PHP خواهیم پرداخت.
پیمایش عناصر آرایه
پیمایش عناصر موجود در یک آرایه ابتداییترین کاربرد حلقه foreach است. قطعه کد زیر نحوه پیمایش عناصر موجود در یک آرایه ساده با استفاده از این ساختار را نشان میدهد.
این کاربرد حلقه foreach برای پردازش جداگانه عناصر موجود در یک آرایه گزینه بسیار خوبی است. پیادهسازی این حلقه تمیز، مختصر و کاملاً قابل درک است.
مدیریت جفتهای کلید و مقدار
گاهی اوقات توسعهدهندگان نیاز دارند تا به هر دو فیلد کلید و مقدار از عناصر موجود در یک آرایه انجمنی دسترسی داشته باشند. برای پیادهسازی چنین سناریویی میتوان از حلقه foreach در PHP استفاده کرد. این ساختار به توسعهدهندگان این امکان را میدهد تا به هر دو فیلد کلید و مقدار از یک آرایه انجمنی دسترسی داشته باشند. قطعه کد زیر نحوه مدیریت کلید و مقدار مربوط به عناصر آرایه با استفاده از ساختار foreach را نشان میدهد.
هنگام کار با آرایههای انجمنی دسترسی به هر دو فیلد کلید و مقدار برای انجام کارهایی همچون ایجاد عناصر HTML، پردازش دادههای فرم و مدیریت تنظیمات پیکربندی ضروری است.
کار با آرایههای چندبعدی
حلقه foreach دسترسی و دستکاری آرایههای تودرتو را بسیار آسان میکند.
پیمایش عناصر اشیا
پیمایش بر روی اشیا یکی از متداولترین کارها در برنامه نویسی شیگرا است. با استفاده از ساختار foreach به سادگی میتوان هر شی موجود در یک مجموعه را پردازش کرد و به فیلدها و متدهای موجود در آن دسترسی پیدا کرد.
تغییر عناصر آرایه
یکی دیگر از کاربردهای متداول حلقه foreach استفاده از آن برای تغییر و اصلاح عناصر آرایه است. مثال زیر نحوه استفاده از حلقه foreach برای این منظور را نشان میدهد.
در قطعه کد بالا پیمایش عناصر موجود در آرایه$fruits توسط حلقه foreach صورت گرفته است. با استفاده از تابعstrtoupper کاراکترهای تشکیل دهنده هر کدام از عناصر موجود در آرایه به حروف بزرگ تغییر پیدا کرده است. خروجی حاصل از اجرا قطعه کد بالا به صورت زیر خواهد بود.
Array
(
[0] => APPLE
[1] => BANANA
[2] => CHERRY
)تغییر عناصر آرایه برای انجام کارهایی همچون تبدیل رشتهها به حروف بزرگ، بهروزرسانی و تبدیل مقادیر بر اساس شرایط خاص مفید است.
چگونه حلقه foreach در PHP را مدیریت کنیم؟
هنگام پیمایش عناصر موجود در آرایه یا یک شی با استفاده از حلقه foreach گاهی نیاز است تا جریان حلقه بر اساس شرایطی خاص کنترل شود. به عنوان مثال، با برقرار شدن یک شرط خاص نیاز است تا از حلقه خارج شویم یا پیمایش عناصر موجود در آرایه در زمان مشخصی به اتمام رسد.
خوشبختانه زبان برنامه نویسی PHP راهکارهای مختلفی برای کنترل جریان حلقه در اختیار توسعهدهندگان قرار داده است. در زبان PHP دو روش برای کنترل جریان حلقه وجود دارد که عبارتنداز:
- دستور Break
- دستور Continue
بر همین اساس در ادامه این بخش از نوشته نحوه کنترل جریان حلقه foreach در PHP با استفاده از هر کدام از دستورهای بالا توضیح داده خواهد شد.

چگونه از دستور Break در PHP استفاده کنیم؟
دستور Break در PHP به توسعهدهندگان امکان میدهد تا قبل از پیمایش تمام عناصر از حلقه خارج شوند. استفاده از این دستور زمانی مفید است که نتیجه مورد نظر پیدا شده و نیازی به بررسی سایر عناصر آرایه وجود ندارد. قطعه کد زیر نحوه استفاده از دستور Break در PHP را نشان میدهد.
در مثال بالا بعد از پیدا شدن عنصر مورد نظر در آرایه یعنیBanana اجرا حلقه توسط دستور Break متوقف شده است. دستور Break با کم کردن تعداد دفعات تکرار حلقه عملکرد کلی اسکریپت نوشته شده را بهبود میبخشد.
چگونه از دستور Continue در PHP استفاده کنیم؟
کدهای نوشته شده بعد از دستور Continue در PHP اجرا نخواهند شد. در واقع، دستور Continue از پیمایش عنصر فعلی آرایه صرف نظر کرده و به سراغ عنصر بعدی موجود در آرایه میرود. بنابراین، استفاده از این دستور زمانی توصیه میشود که بخواهید از پردازش یک عنصر خاص بر مبنای برقرار شدن شرط صرف نظر کنید. به عنوان مثال، اگر قصد پردازش تمام عناصر آرایه به جز یک مورد خاص را دارید میتوانید از این دستور استفاده کنید. قطعه کد زیر نحوه استفاده از این دستور را نشان میدهد.
در مثال بالا تمام عناصر موجود در آرایه به جز عنصرBanana پردازش خواهند شد. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
Apple
Cherryدستور Continue برخلاف Break از حلقه به طور کامل خارج نمیشود و تنها از پیمایش عنصر فعلی صرف نظر میکند.
استفاده همزمان از دستور Break و Continue
امکان استفاده همزمان از دستورهای Break و Continue در PHP وجود دارد. گاهی اوقات با توجه شرایط میتوانید از این دو دستور به صورت همزمان استفاده کنید. قطعه کد زیر نحوه استفاده از این دو دستور به صورت همزمان را نشان میدهد.
ترکیب این دستورات به توسعه دهنده امکان میدهد تا منطق پیچیده مد نظر خود را پیادهسازی کند. به عنوان مثال، میتوان از پیمایش برخی از عناصر آرایه خودداری کرد یا اجرا حلقه را در صورت برآورده شدن شرطی خاص متوقف کرد. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
Apple
Dateاز این رویکرد میتوان برای فیلتر کردن دادهها، جستجو یا هر فرایند دیگری استفاده کرد.
نحوه مدیریت متغیرهای مختلف توسط حلقه foreach در PHP چگونه است؟
حلقه foreach در وهله نخست برای کار با آرایهها و اشیا طراحی شده است، اما با استفاده از این ساختار میتوان انواع مختلف متغیر را نیز مدیریت کرد. درک چگونگی مدیریت انواع مختلف متغیر توسط این ساختار بسیار مهم است. در ادامه این بخش با نحوه مدیریت متغیرهای مختلف توسط حلقه foreach در PHP آشنا خواهیم شد.
حلقه foreach و متغیرهای اسکالر
خروجی حاصل از اجرا قطعه کد بالا به صورت زیر خواهد بود.
Warning: Invalid argument supplied for foreach()دلیل بروز این خطا نیز به این خاطر است که متغیرهای اسکالر تنها یک مقدار دارند و فاقد چندین عنصر برای پیمایش هستند. در حقیقت حلقه foreach نیازمند یک ساختار «تکرارشونده» (Iterable) است تا بتواند عملیات پیمایش را انجام دهد.
حلقه foreach و آرایه های اندیسدار
حلقه foreach به خوبی میتواند متغیرهایی از نوع آرایه را مدیریت کند. این ساختار توانایی مدیریت «آرایههای اندیسدار» (indexed arrays) و «آرایههای انجمنی» (associative array) را دارد. قطعه کد زیر پیمایش آرایه اندیسدار توسط حلقه foreach را نشان میدهد.
استفاده از حلقه foreach برای پیمایش عناصر آرایههای اندیسدار به توسعهدهندگان امکان میدهد تا بتوانند به سادگی هر کدام از عناصر آرایه را پردازش کنند. در نتیجه، خوانایی و قابلیت نگهداری کد نیز بهبود مییابد.
حلقه foreach و آرایه های انجمنی
ساختار حلقه foreach توانایی مدیریت آرایههای انجمنی را نیز دارد. با استفاده از این حلقه میتوان به هر دو فیلد کلید و مقدار موجود در این نوع آرایه دسترسی پیدا کرد. قطعه کد زیر مثالی از پیمایش یک آرایه انجمنی با استفاده از حلقه foreach در PHP را نشان میدهد.
در مثال بالا عملیات پیمایش بر روی هر دو فیلد کلید و مقدار آرایه صورت گرفته است.
حلقه foreach و اشیا
از حلقه foreach برای پیمایش اشیا نیز میتوان استفاده کرد. این حلقه ویژگیهای شی را به عنوان عناصر آرایه در نظر میگیرد. برای درک بهتر این موضوع به مثال زیر توجه کنید.
در مثال بالا پیمایش عناصر شی$fruits توسط حلقه foreach صورت گرفته است.
تفاوت for با حلقه foreach در PHP
هر دو حلقه for و foreach در زبان PHP به منظور انجام پیمایش بر روی ساختارهای داده مورد استفاده قرار میگیرند، اما موارد استفاده و کاربردهایشان با یکدیگر متفاوت است. حلقه for در PHP عملیات پیمایش بر روی کد را بر اساس متغیر شمارنده انجام میدهد. در نقطه مقابل حلقه foreach تمام عناصر موجود در آرایه را پیمایش میکند.
توسعهدهندگان میتوانند از هر کدام از این ساختارها بسته به شرایط خود استفاده کنند. مهمترین تفاوتهای این دو ساختار به شرح زیر است.
- حلقه foreach پیمایش را روی عناصر آرایه انجام میدهد.
- استفاده از حلقه foreach نسبت به حلقه for آسانتر است.
- حلقه foreach در مقایسه با حلقه for عملکرد بهتری دارد.
- حلقه foreach پیمایش را سریعتر انجام میدهد و سرعت اجرا برنامه را بهبود میبخشد.
- حلقه for در PHP به تعداد مشخصی تکرار میشود.
- با حلقه foreach سناریوهای پیچیدهتری را میتوان پیادهسازی کرد.
یادگیری طراحی و برنامه نویسی با فرادرس
طراحی و پیادهسازی یک وبسایت به ترکیبی از مهارتهای فنی، خلاقانه و تحلیلی نیاز دارد. زبان برنامه نویسی PHP بیشتر برای توسعه «بکاند» (Back-End) مورد استفاده قرار میگیرد. اگر قصد دارید یک وبسایت را به طور کامل پیادهسازی کنید، باید به فناوریهای بیشتری تسط داشته باشید. به عنوان مثال، HTML و CSS برای طراحی رابط کاربری و چیدمان عناصر مورد نیاز هستند. همچنین، جاوا اسکریپت برای افزودن تعامل به سایت و بهبود تجربه کاربری مورد استفاده قرار میگیرد. در کنار این موارد نیز تسلط به فریمورکها، کتابخانهها، سیستمهای کنترل نسخه، محیطهای یکپارچه توسعه و ویرایشگرهای متن، ابزارهای اشکالزدایی، یکپارچهسازی API و سایر موارد دیگر نیز بسیار مفید است.

اگر قصد شروع یادگیری طراحی و برنامه نویسی سایت را دارید میتوانید از فیلمهای آموزشی زیر استفاده کنید که در ادامه لینک تعدادی از آنها آورده شده است.
- فیلم آموزش طراحی وب با HTML مقدماتی فرادرس
- فیلم آموزش طراحی وب سایت با CSS مقدماتی فرادرس
- فیلم آموزش جاوا اسکریپت جامع و کاربردی فرادرس
- فیلم آموزش پروژه محور HTML و CSS فرادرس
جمعبندی
علاوه بر این، چگونگی پیمایش عناصر آرایه و اشیا توسط این ساختار مورد بررسی قرار گرفت. همچنین، موارد مهمی همچون دلیل استفاده از این ساختار، کاربردها و مزایای استفاده از آن نسبت به سایر ساختارهای تکرار متداول نیز در این مطلب آموزشی بررسی شد.
مطالب مجله فرادرس را در جستجوی گوگل سریعتر ببینید













