حلقه های تکرار در php

حلقه های تکرار در PHP

در هر زبان برنامه نویسی ای حلقه های تکرار برار تکرار قسمتی از کد به کار می رود. حلقه های تکرار در PHP نیز مانند تمامی زبانها برای تکرار کد استفاده می شود. در PHP انواع حلقه های تکرار وجود دارد که در ادامه به معرفی آنها خواهیم پرداخت.

تمامی حلقه های تکرار تا زمانی که شرط حلقه درست باشد، اجرا می شوند.

انواع حلقه های تکرار در PHP

  • for
  • foreach
  • while
  • do…while

حلقه for

از حلقه for زمانی استفاده می کنیم که تعداد تکرارهای حلقه را از قبل بدانیم.

for (init counter; test counter; increment counter) {
  code to be executed for each iteration;
} 
  • init counter: متغیری که تعداد تکرار را در خود ذخیره خواهد کرد را تعریف می کند.
  • test counter: برای ارزیابی تکرار حلقه به کار میرود. اگر شرط درست باشد حلقه تکرار می شود و اگر شرط نادرست باشد اجرای حلقه به پایان می رسد.
  • increment counter: تعداد گامهای افزایش متغیر را مشخص می کند.
for ($counter = 0; $counter <= 10; $counter++) {
    echo "The number is: $counter <br/>";
}
----------------
The number is: 0
The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5
The number is: 6
The number is: 7
The number is: 8
The number is: 9
The number is: 10 

این مثال اعداد ۰ تا ۱۰ را چاپ می کند. ابتدا متغیری با نام counter تعریف می شود و مقدار اولیه آن را ۰ قرار می دهیم. در مرحله دوم چون مقدار counter (0) از ۱۰ کمتر است پس کدهای داخل حلقه اجرا می شوند. در این حین مقدار counter از ۰ به یک تغییر می کند. سپس اجرای کد به for باز می گردد. چون مقدار متغیر (۱) از ۱۰ کمتر است، پس کدهای داخل حلقه اجرا می شوند. این روند ادامه می یابد تا مقدار counter به ۱۱ برسد و چون کمتر از ۱۰ نیست پس اجرا کدهای داخل حلقه متوقف می شود.

این مثال اعداد را با گام ۱ چاپ می کند.

for ($counter = 0; $counter <= 10; $counter += 2) {
    echo "The number is: $counter <br/>";
}
------------------
The number is: 0
The number is: 2
The number is: 4
The number is: 6
The number is: 8
The number is: 10 

این مثال هم اعداد را با گام ۲ چاپ می کند. با هر بار اجرای حلقه، ۲ واحد به counter اضافه می شود.

پیشرفته: از چندین متغیر می توان در داخل حلقه for استفاده کرد.

for ($x = 0, $y = 20; $x <= 10, $y >= ۱۰; $x++, $y--) {
    echo "The number is: x = $x and y = $y <br/>";
}
---------------------
The number is: x = 0 and y = 20
The number is: x = 1 and y = 19
The number is: x = 2 and y = 18
The number is: x = 3 and y = 17
The number is: x = 4 and y = 16
The number is: x = 5 and y = 15
The number is: x = 6 and y = 14
The number is: x = 7 and y = 13
The number is: x = 8 and y = 12
The number is: x = 9 and y = 11
The number is: x = 10 and y = 10 

حلقه foreach در PHP

این حلقه مانند حلقه for می باشد با این تفاوت که از این حلقه برای اجرای کد براساس داده های یک آرایه استفاده می شود.

foreach ($array as $value) {
  code to be executed;
} 

برای هر تکرار حلقه، مقدار عنصر آرایه فعلی به $value تخصیص داده می شود و نشانگر آرایه با گام یک حرکت می کند تا به آخرین عنصر آرایه برسد.

$cars = array("Ferrari", "Benz", "BMW",  "Volvo");

foreach ($cars as $value) {
    echo "$value <br/>";
}
-----------------
Ferrari
Benz
BMW
Volvo

در این حلقه می توان از مقدار کلید آرایه نیز استفاده کرد.

$cars = array(
    "fer" => "Ferrari",
    "ben" => "Benz",
    "bmw" => "BMW",
    "vol" => "Volvo",
);

foreach ($cars as $key => $value) {
    echo "$key = $value <br/>";
}
--------------
fer = Ferrari
ben = Benz
bmw = BMW
vol = Volvo 

حلقه while

این حلقه مانند حلقه for تا زمانی که شرط while درست باشد، اجرا خواهد شد.

while (condition is true) {
  code to be executed;
} 
$counter = 1;

while($counter <= 5) {
  echo "The number is: $counter <br/>";
  $counter++;
} 
---------------------
The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5 

در این مثال اعداد ۱ تا ۵ چاپ می شود. همانطور که مشاهده می کنید عملکرد آن تقریبا شبیه حلقه for می باشد.

همانطور که گفته شد این حلقه تا زمانی که شرط درست باشد، اجرا می شود. بنابراین می توان با این حلقه، حلقه تکرار بی نهایت ایجاد کرد.

$counter = 1;

while(true) {
  echo "The number is: $counter <br/>";
  $counter++;
} 

این کد تا بی نهایت اجرا خواهد شد زیرا شرط همیشه true است.

حلقه do…while

این حلقه مانند حلقه while می باشد با این تفاوت که کدهای داخل آن حداقل یک بار اجرا می شوند حتی اگر شرط نادرست باشد. در واقع این حلقه شرط را بعد از اجرای کد بررسی می کند.

do {
  code to be executed;
} while (condition is true); 
$counter = 1;

do {
    echo "The number is: $counter <br/>";
    $counter++;
} while ($counter <= 5);
------------------------
The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5 

حال مقدار اولیه متغیر counter را ۶ قرار می دهیم.

$counter = 6;

do {
    echo "The number is: $counter <br/>";
    $counter++;
} while ($counter <= 5);
----------------
The number is: 6 

در این مثال کدهای داخل حلقه یک بار اجرا می شوند و سپس شرط حلقه بررسی می شود. چون مقدار ۶ از ۵ بزرگتر است، اجرای حلقه ادامه پیدا نمی کند.

Break و Continue در PHP

از این دستورات برای کنترل ادامه و یا توقف حلقه ها استفاده می شود.

دستور break

این دستور برای توقف اجرای کدهای داخل حلقه به کار می رود.

for ($counter = 0; $counter <= 10; $counter++) {
    if ($counter == 5) {
        break;
    }
    echo "The number is: $counter <br/>";
}
-------------------
The number is: 0
The number is: 1
The number is: 2
The number is: 3
The number is: 4 

اجرای کدها تا زمانی که مقدار متغیر counter به ۵ نرسیده است ادامه پیدا می کند و سپس اجرای حلقه متوقف می شود.

دستور continue

این دستور اجرای کدهای داخل حلقه را بعد از خود متوقف می کند.

for ($counter = 0; $counter <= 10; $counter++) {
    if ($counter == 5) {
        continue;
    }
    echo "The number is: $counter <br/>";
}
------------------------
The number is: 0
The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 6
The number is: 7
The number is: 8
The number is: 9
The number is: 10 

همانطور که مشاهده می کنید عدد ۵ چاپ نشده است.

حلقه های تو در تو در PHP

گاهی نیاز هست که حلقه ای در داخل حلقه دیگر استفاده شود، به این نوع حلقه ها، حلقه های تو در تو گفته می شود.

for ($x = 0; $x < 3; $x++) {
    for ($y = 0; $y < 3; $y++) {
        echo "The number is: x = $x and y = $y <br/>";
    }
}
------------------
The number is: x = 0 and y = 0
The number is: x = 0 and y = 1
The number is: x = 0 and y = 2
The number is: x = 1 and y = 0
The number is: x = 1 and y = 1
The number is: x = 1 and y = 2
The number is: x = 2 and y = 0
The number is: x = 2 and y = 1
The number is: x = 2 and y = 2 

همان طور که در مثال مشاهده می کنید، کد echo برای هر y سه بار اجرا می شود که با سه بار اجرای x نیز جمعا ۹ بار اجرا می شود.

مطالب مرتبط