حلقه For در PHP — به زبان ساده + مثال و کد
حلقهها در برنامهنویسی برای تکرار بلوک خاصی از کدها استفاده میشوند. مفهوم و قابلیت استفاده از حلقه در همه زبانهای برنامه نویسی وجود دارد و صرفاً بسته به نوع زبان، سینتکس (قواعد نحوی) آن متفاوت است ولی دارای عملکرد یکسانی هستند. در این نوشته سعی شده است با بیانی ساده به این سوال پاسخ داده شود که حلقه For در PHP چیست و چگونه کار میکند. سپس ساختار استاندارد برای تعریف حلقه For در PHP را معرفی خواهیم کرد و با کمک مثالهایی نحوه استفاده از حلقه For در PHP را خواهیم آموخت. در ادامه این نوشته نیز برای درک بهتر مباحث مهمی همچون ساختار حلقه foreach و حلقههای تودرتو در PHP نیز به همراه مثال به طور کامل بررسی شدهاند.
حلقه For در PHP
بهطور کلی ساختار حلقه در PHP برای اجرای دستورهای تکراری در برنامه نویسی استفاده میشود و حلقه For در PHP هم به شکلهای مختلفی استفاده میشود. حلقه For همچون سایر حلقهها نظیر حلقه while، کارها و وظایف مشابه را تکرار میکند. حلقه For در PHP و همچنین حلقه while بر اساس شرط تعیین شده بلوک کد مربوطه را اجرا میکنند. هرگاه از قبل مشخص باشد که بلوک کد موردنظر ما باید به تعداد مشخصی مثلاً 5 مرتبه اجرا شود، از حلقه For در PHP استفاده میکنیم. در حالی که حلقه while تنها در صورت برقرار بودن شرط مربوطه اجرا میشود.
همانطور که عنوان شد حلقهها در PHP انواع مختلفی دارند. برای نمونه، در خصوص حلقه do-while، زمانی از این ساختار حلقه در PHP استفاده میشود که بهطور دقیق مشخص نباشد حلقه قرار است چند بار اجرا شود اما این اطمینان وجود دارد که حداقل یک بار باید حلقه را اجرا کنیم. بهطور مشابه این مسئله برای سایر ساختارهای حلقه در PHP از جمله حلقه For در PHP نیز برقرار است.
ساختار حلقه For در PHP چگونه است؟
سینتکس حلقه For در PHP ساده و مشابه با ساختار حلقههای موجود در سایر زبانهای برنامه نویسی است. ساختار حلقه For در PHP با کلمه کلیدی For شروع میشود و بعد از آن نیز 3 آرگومان آورده میشود که به کمک نقطه ویرگول از هم جدا شده و درون پرانتز قرار میگیرند. بخش مربوط به کدهای حلقه نیز باید درون کروشه (bracket | { }) قرار بگیرد.
1for (initialize; condition; increment) {
2 // Code here will be executed on each iteration
3}
در قطعه کد بالا، ساختار کلی حلقه For در PHP یا همان سینتکس آن ارائه شده است.
- Initialize : در این بخش که اولین قسمت از ساختار حلقه For در PHP است، مقداردهی اولیه شمارنده حلقه انجام میشود که لازم است مقداری از نوع عدد صحیح به آن تخصیص داد.
- Condition : در هر مرتبه از اجرای حلقه ابتدا این شرط بررسی میشود و تنها درصورتی که برقرار باشد بلوک کد نوشته شده در بدنه حلقه اجرا خواهد شد. در غیر این صورت اجرای حلقه متوقف خواهد شد.
- Increment : در این بخش میزان افزایش یا کاهش متغیر شمارنده در هر مرتبه از تکرار حلقه تعیین میشود.
حلقه For در PHP چگونه کار می کند ؟
ابتدا بخش مربوط به مقداردهی اولیه متغیرها در حلقه For ارزیابی میشود. در گام بعدی، با هر مرتبه تکرار، شرط حلقه بررسی میشود، در صورت برقرار بودن شرط، اجرا ادامه مییابد و بلوک کد یا دستورات اجرا میشوند و اگر شرط بررسی شده نادرست ارزیابی شود، حلقه به پایان میرسد، بدون اینکه بلوک کد یا دستورات اجرا شوند. در نهایت پس از اجرای دستورات، مقدار شمارنده حلقه افزایش یا کاهش مییابد.
چگونه از حلقه For در PHP استفاده کنیم؟
در این بخش از مطلب، اصول اولیه نوشتن حلقه For در PHP را مورد بررسی قرار میدهیم. همچنین موضوعاتی نظیر خارج شدن کامل از حلقه For و پرش از تکرار حلقه را پوشش خواهیم داد. نکتهای که باید در نظر داشته داشت این است که برای یادگیری عمگلرهای زبان برنامه نویسی PHP زمان بگذارید، زیرا برای ایجاد شرط در ساختار حلقه For در PHP باید این مفاهیم پایه به خوبی درک شوند. دستورات شرطی در بیشتر ساختارهای کنترلی موجود در زبانهای برنامه نویسی از جمله: دستورات if-else، دستورات Switch، حلقهها و سایر موارد استفاده میشوند.
آموزش استفاده از ساختار استاندارد حلقه For در PHP
در این بخش قصد داریم برای نمایش نحوه کارکرد حلقهها در PHP از ساختار استاندارد حلقه For استفاده کنیم. در ادامه مثالی در این خصوص ارائه شده است.
1<?php
2
3for($x = 1; $x <= 5; $x++) {
4 echo "The value of x is ". $x ." ";
5}
6
7?>
در این مثال، ۳ آرگومان داخل پرانتز برای حلقه For استفاده شده است که در ادامه هر کدام به تفکیک مورد بررسی قرار گرفتهاند:
- $x = 1 در اولین بخش، متغیر شمارنده حلقه مقداردهی اولیه میشود و مقدار آن برابر 1 در نظر گرفته میشود.
- $x <= 5 در این بخش شرط ادامه حلقه نوشته شده است که تا وقتی مقدار متغیر$x برابر یا کمتر از عدد 5 باشد اجرای حلقه ادامه پیدا خواهد کرد.
- $x++ در بخش انتهایی نیز، متغیر شمارنده حلقه در هر بار اجرای حلقه یک واحد افزایش مییابد.
درون بدنه حلقه For نیز ما به سادگی مقدار متغیر$x را در هر مرتبه اجرای حلقه For در خروجی چاپ میکنیم. در ادامه نیز برای درک بهتر نحوه کار حلقه For در PHP خروجی مربوط به کدهای بالا آورده شده است:
The value of x is 1. The value of x is 2. The value of x is 3. The value of x is 4. The value of x is 5.
همانطور که در خروجی آمده است، حلقه For تا جایی به تکرار ادامه میدهد که مقدار متغیر$x دیگر با شرط حلقه مطابقت نداشته باشد، زیرا بزرگتر از عدد 5 بود. در واقع این ساختار استاندارد حلقه For در PHP است که لازم است حتماً هنگام برنامه نویسی با زبان PHP رعایت شود. در ادامه مثال دیگری با شرایطی متفاوت ارائه شده است:
1<?php
2
3for($y = 100; $y >= 50; $y -= 10) {
4 echo "The value of y is ". $y ." ";
5}
6
7?>
در این مثال، مقدار متغیر شمارنده حلقه خود را کاهش میدهیم و همچنین از مقادیر بزرگتر استفاده میکنیم. برای این حلقه نیز توضیحات زیر را داریم:
- $y = 100 : در این بخش متغیر شمارنده حلقه با مقدار 100 مقداردهی اولیه میشود.
- $y >= 50 : در این بخش شرط ادامه حلقه آورده شده است که تا زمانی که مقدار متغیر$y برابر یا بیشتر از عدد 50 باشد به اجرای حلقه ادامه میدهد.
- $y -= 10 : مقدار متغیر شمارنده حلقه را در هر بار اجرای حلقه 10 وحد کاهش میدهد.
درون بدنه حلقه For نیز مقدار متغیر$y را در هر مرتبه اجرای حلقه در خروجی چاپ میکنیم. در ادامه نیز خروجی مربوط به کد بالا آورده شده است:
The value of y is 100. The value of y is 90. The value of y is 80. The value of y is 70. The value of y is 60. The value of y is 50.
همانطور که در خروجی کد بالا میبینید در هر مرتبه اجرای حلقه مقدار متغیر$y کاهش مییابد و زمانی که دیگر متغیر$y بزرگتر یا مساوی 50 نباشد اجرای حلقه For متوقف میشود.
دستور Break در حلقه For در زبان PHP
خروج از حلقه For در PHP مانند هر حلقه دیگری است. تنها کاری که در این زمینه باید انجام داد این است که از دستور break استفاده شود. برای استفاده از دستور break باید آن را در ساختار شرطی قرار دهید، بنابراین فقط در شرایط خاصی اجرا خواهد شد.
در ادامه مثالی از کاربرد دستور break در حلقه For در PHP ارائه شده است:
1<?php
2
3for($z = 1; $z <= 3; $z++) {
4 if($z == 3) {
5 echo "Breaking out of the script.";
6 break;
7 }
8 echo "The value of z is " . $z . ".<br>";
9}
10
11?>
در این مثال، حلقه تا زمانی اجرا خواهد شد که مقدار متغیر$z کوچکتر از 3 یا مساوی با آن باشد. به محض اینکه ساختار شرطی نوشته شده در بدنه حلقه، یعنی$z == 3 برقرار شود، دستور break اجرا خواهد شد و از حلقه خارج میشویم. در ادامه نیز خروجی مربوط به کد بالا آورده شده است:
The value of z is 1. The value of z is 2. Breaking out of the script.
خروجی نمونه کد بالا از حلقه For در PHP به بیان ساده نحوه استفاده از ساختار break در حلقه For را نشان میدهد. زمانی که مقدار متغیر$z برابر با 3 شد، به کمک دستور break از حلقه خارج شده و کد PHP ما به انتهای خود رسید.
دستور Continue در حلقه
با استفاده از دستور Continue در حلقه For در PHP میتوان تکرار حلقه را زودتر خاتمه داد. این کار بیشتر در مواردی کاربرد دارد که نمیخواهیم برخی از دادهها پردازش شوند و همچنین حلقه For بعد از دستور Continue به سراغ تکرار بعدی میرود.
در ادامه مثالی از کاربرد دستور Continue در حلقه For در PHP ارائه شده است:
1<?php
2
3for($x = 1; $x <= 5; $x++) {
4 if($x == 3) {
5 echo "Skipping.<br>";
6 continue;
7 }
8 echo "The value of x is " . $x . ".<br>";
9}
10
11?>
در مثال بالا، هر زمان که مقدار متغیر$x برابر با 3 شود عبور از این تکرار اتفاق میافتد و به سراغ تکرار بعدی حلقه میرویم. در ادامه نیز خروجی مربوط به کد بالا آورده شده است:
The value of x is 1. The value of x is 2. Skipping. The value of x is 4. The value of x is 5.
همانطور که در خروجی کدها آمده است، زمانی که مقدار متغیر$x برابر با 3 میشود به جای مقدار متغیر$x ، عبارتSkipping در خروجی چاپ شده است. در ادامه نیز حلقه For در PHP به تکرار ادامه میدهد تا اینکه دیگر شرط نوشته شده داخل پرانتزهای حلقه For برقرار نباشد.
معرفی فیلمهای آموزش PHP
در پلتفرم فرادرس دورههای آموزشی براساس موضوع دستهبندی شدهاند و در صفحاتی به عنوان مجموعههای آموزشی در دسترس هستند. یکی از این مجموعهها هم به برنامهنویسی PHP اختصاص دارد. در این مجموعه آموزشی همانطور که در تصویر فوق آمده، دورههای آموزشی پروژهمحور برای زبان برنامهنویسی PHP نیز وجود دارد. علاوه بر این دورههایی نیز برای کار با فریمورکهای مرتبط با PHP در این مجموعه وجود دارد. در تصویر فوق تنها تعداد کمی از این دورهها آمده است.
- برای شروع یادگیری برنامهنویسی PHP و دسترسی به همه دورههای آموزشی + اینجا کلیک کنید.
چند مثال حلقه For در PHP
بعد از اینکه با ساختار استاندارد تعریف حلقه For در PHP آشنا شدیم در این بخش قصد داریم با ارائه چند مثال با ساختارهای متفاوت، به صورت تکمیلی مبحث حلقه For در PHP را بررسی کنیم.
تعریف شمارنده خارج از حلقه
در برنامه زیر متغیر شمارنده حلقه یعنی متغیر$i خارج از حلقه مقداردهی اولیه میشود. بنابراین متغیر$i با دستورecho چاپ میشود، مقادیر معتبر برای$i از 1 تا 5 است. زیرا شرط درون پرانتز حلقه For نیز مقادیر کوچکتر یا مساوی با 5 است. برای ساختار حلقه For در PHP قابلیتی وجود دارد و آن هم این است که میتوان شمارنده حلقه را خارج از آن تعریف کرد.
1<?php
2//example to demonstrate for loop
3//declaring variable i
4$i=1;
5//condition , increment and decrement
6for(; $i<=5;$i++) {
7//line break
8echo '<br>';
9//printing the value of variable i
10echo 'Value of i is '.$i;
11}
12?>
در ادامه خروجی نمونه کد بالا ارائه شده است:
Value of i is 1 Value of i is 2 Value of i is 3 Value of i is 4 Value of i is 5
تعریف شرط داخل حلقه
در برنامه زیر، عبارت حاوی شرط در دستور حلقه For در PHP آورده نشده است بلکه این بخش داخل بدنه حلقه For مانندif($i == 4) ذکر شده است و به دنبال آن نیز از دستور break استفاده میشود. در حین اجرای حلقه اگر مقدار متغیر$i به 4 برسد با کمک دستور break از حلقه خارج خواهیم شد.
1<?php
2//example to demonstrate for loop
3//declaring variable i , increment and decrement
4for($i=1; ;$i++) {
5// condition
6if($i == 4) {
7break;
8}
9//line break
10echo '<br>';
11//printing the value of variable i
12echo 'Value of i is '.$i;
13}
14?>
در ادامه خروجی نمونه کد بالا ارائه شده است:
Value of i is 1 Value of i is 2 Value of i is 3
تعریف گام افزایشی یا کاهشی داخل حلقه
در ساختار حلقه for ما این امکان را داریم که بخش مربوط به افزایش یا کاهش متغیر شمارنده حلقه را به داخل بدنه حلقه For منتقل کنیم. در کد زیر حلقه بعد از چاپ مقدار متغیر$iدر آخرین خط با دستور$i++ این متغیر را یک واحد افزایش میدهد و سپس به سراغ تکرار بعدی حلقه میرود. روند اجرای حلقه تا زمانی که به شرطif($i == 7)میرسیم ادامه پیدا میکند و بعد از آن با دستورbreak اجرای حلقه به پایان میرسد.
1<?php
2//example to demonstrate for loop
3//declaring variable i declaring condition
4for($i=1;$i<=10;) {
5if($i == 7) {
6break;
7}
8//line break
9echo '<br>';
10//printing the value of variable i
11echo 'Value of i is '.$i;
12//increment and decrement
13$i++;
14}
15?>
در ادامه خروجی نمونه کد بالا ارائه شده است:
Value of i is 1 Value of i is 2 Value of i is 3 Value of i is 4 Value of i is 5 Value of i is 6
اعلان حلقه For در PHP بدون هیچ پارامتری
در بحث تعریف ساختار حلقه for این امکان نیز وجود دارد که درون پرانتز هیچ کدام از بخشهای شمارنده، شرط و گام حلقه را تعریف نکنیم. در واقع حلقه For در این حالت حاوی هیچ پارامتر یا آرگومانی نیست و به صورتی متفاوت تعریف میشود. همانطور که در کد زیر میبینید، حلقه For در این بخش به صورتfor( ; ; ) تعریف شده است که فاقد پارامترها و آرگومانهای معمول برای حلقه For است.
1<?php
2//declaring variable i
3$i=1;
4for(;;) {
5//declaring condition
6if($i == 8) {
7break;
8}
9//line break
10echo '<br>';
11//printing the value of variable i
12echo 'Value of i is '.$i;
13//increment and decrement
14$i++;
15}
16?>
در ادامه خروجی حاصل از نمونه کد بالا ارائه شده است:
Value of i is 1 Value of i is 2 Value of i is 3 Value of i is 4 Value of i is 5 Value of i is 6 Value of i is 7
حلقه For تودرتو در PHP
در برنامه زیر از ساختار حلقه for به صورت تودرتو استفاده کردهایم، به این صورت که درون بدنه حلقه For مجدداً حلقه For دیگری را نوشتهایم.
1<?php
2//example to demonstrate star pattern using for loop
3for($i=0;$i<=5;$i++)
4{
5for($j=0;$j<=$i;$j++) {
6echo " * ";
7}
8echo "<br/>";
9}
10?>
در ادامه خروجی نمونه کد بالا ارائه شده است:
* * * * * * * * * * * * * * * * * * * * *
حلقه foreach در PHP
حلقه foreach و حلقه for هر دو وظایف یکسانی را انجام میدهند یعنی برای اجرای یک قطعه کد به صورت تکراری به کار میروند. زمانی که در حال خواندن عنصرهای لیست یا آرایه هستیم یا ممکن است در حال خواندن هر خط از فایل باشیم در چنین شرایطی از حلقه foreach در PHP استفاده میکنیم.
در ادامه مثالی از کاربرد حلقه foreach در PHP ارائه شده است:
1<?php
2//example to demonstrate array using foreach loop
3$directions = array('east','west','north', 'south');
4foreach($directions as $key=>$value) {
5echo 'Direction =>'. $value.'<br/>';
6}
7?>
در نمونه کد بالا قصد داریم عناصر موجود در لیست$directions را بخوانیم و نام هر کدام را در خروجی چاپ کنیم. برای این منظور دیگر از حلقه For در PHP استفاده نمیکنیم زیرا در ساختار حلقه For در PHP دقیقا باید بدانیم چند مرتبه حلقه تکرار میشود و تمام بخشهای مربوطه را باید تکمیل کنیم تا خروجی مطلوب حاصل شود. برای راحتی کار از ساختار حلقه foreach استفاده میکنیم که به صورت خودکار لیست$directions را برای ما پیمایش میکند و دقیقاً به تعداد عناصر موجود در لیست تکرار میشود.
در ادامه خروجی نمونه کد بالا ارائه شده است:
Direction =>east Direction =>west Direction =>north Direction =>south
جمعبندی
یادگیری حلقه در برنامه نویسی و درک نحوه استفاده از حلقهها در برنامه نویسی برای ایجاد برنامههای کامپیوتری بسیار اهمیت دارد چرا که میتوان به وسیله این برنامههای کامپیوتری، قابلیتهای عملکردی مختلفی را پیادهسازی کرد که هیچگاه بدون حلقهها در برنامه نویسی امکانپذیر نبودند. حلقه For تنها ساختار حلقهای نیست که میتوانید در PHP استفاده کنید. حلقههای دیگری همچون حلقه while یا حلقه foreach نیز بسیار مفید و کاربردی هستند، اما هر کدام مزایا و معایب مربوط به خود را دارند در صورتی که نحوه عملکرد هرکدام را به خوبی درک کرده باشید این قابلیت را دارید که ساختار حلقه مناسب برای برنامه خود را انتخاب کنید. برای یادگیری هر چه عمیقتر ساختارهای کنترلی در PHP وقت بگذارید، زیرا به بهبود خوانایی و عملکرد کدهای شما کمک شایانی خواهد کرد.