حلقه ها در PHP – مقدمه

در این بخش از آموزش PHP، به آموزش حلقه ها در PHP می پردازیم. در ابتدا با آموزش حلقه for در PHP آغاز می کنیم.

سپس در مورد حلقه while و نحوه کار حلقه while در php صحبت خواهیم کرد. سپس در مورد حلقه foreach در پی اچ پی برای پیمایش آرایه ها آموزش خواهیم داد.

سپس به توضیح حلقه do while در PHP خواهیم پرداخت. همین طور در مورد حلقه های تو در تو  در php توضیح خواهیم داد.

آموزش حلقه ها در PHP توسط وبمستر وردپرس

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

پس از آن در مورد دستور continue  در php صحبت می کنیم و سپس در مورد تفاوت حلقه for  و foreach در PHP می پردازیم.

در بخش های مختلف این آموزش در مورد حلقه ها در پی اچ پی، مثال های مختلفی می زنیم تا مطلب به صورت کامل و در کمترین زمان ممکن، برای شما دوستان عزیز قابل درک و فهم باشد.

این آموزش، یکی از بخش های آموزش های رایگان PHP در سایت وبمستر وردپرس  می باشد. در صورتی که می خواهید به کلیه بخش های این سری آموزشی رایگان دسترسی داشته باشید، می توانید از لینک زیر استفاده کنید:

برای دسترسی به کلیه سرفصل های آموزش رایگان PHP می توانید از این لینک استفاده کنید.

بخش 1 : کاربرد حلقه ها در PHP چیست؟

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

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

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

بخش 2 : آموزش حلقه for در PHP

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

به عنوان مثال در زیر اعداد بین 2000 تا 3000 را با گام 100 تایی چاپ می کنیم.

/*Simple for loop example*/
for ( $i = 2000; $i <= 3000; $i += 100 ) {
  echo $i;
  echo '<br>';
}

//The return is something like this in the following:
2000
2100
2200
2300
2400
2500
2600
2700
2800
2900
3000
  • ساختار حلقه for در PHP: 

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

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

  • تعریف متغیر حلقه for در بخش اول تعریف حلقه : 

    بخش اول حلقه در دستور for ، برای تعریف متغیر استفاده شده در حلقه برای پیمایش حلقه می باشد. علاوه بر تعریف، می توان متغیری که قرار است پیمایش حلقه روی آن انجام شود، مقداردهی اولیه گردد.

در صورت نیاز به آشنایی با تعریف متغیرها در PHP ، از این لینک می توانید استفاده کنید.
  • تعریف شرط حلقه for در بخش دوم آن: 

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

    عموما این شرط بر روی متغیر حلقه تعریف می شود. شرط حلقه for در هر مرحله حلقه بررسی می شود. در صورت درست بودن این شرط، دستورات داخل حلقه for به اجرا در می آیند و در صورت نادرست بودن، حلقه خاتمه می یابد.

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

  • گام افزایشی حلقه for در PHP (یا گام کاهشی): 

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

    قبل از رفتن به مرحله بعدی حلقه، این قسمت اجرا می شود و عملیاتی بر روی متغیر حلقه انجام می شود. در نظر داشته باشید گام حلقه پس از بیرون آمدن از حلقه، برابر مقدار نهایی به اضافه گام افزایشی (یا منهای گام کاهشی) می باشد.

    همواره در نظر داشته باشید که در حلقه for باید شروع و پایان حلقه مشخص باشد. در واقع همواره تعداد گام های حلقه مشخص است.

  • دستورات داخل بلاک حلقه for: 

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

    نکته: در صورتی که حلقه for فقط یک دستور برای اجرا داشته باشد، نیازی به استفاده از { } ندارد. البته best practice این می باشد که در هر صورت از آن برای خوانایی کد، استفاده شود.

  • استفاده از syntax دیگر برای نمایش دستور for در پی اچ پی: 

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

/*Another syntax in using for loop*/
for ( $i = 2000; $i <= 3000; $i += 100 ) :
  echo $i;
  echo '<br>';
endfor;
آموزش حلقه for در PHP - وبمستر وردپرس

چند نکته در مورد دستور for در PHP

در مورد حلقه ی for در PHP می توانیم به یک سری از نکات اشاره کنیم که در زیر به صورت لیست وار به آن ها اشاره شده است:

  • تعریف نقطه شروع در خارج از حلقه for: 

    نقطه شروع یا همان initial value برای شروع حلقه for ، می تواند در خارج از دستور for تعریف شود. در نظر داشته باشید که در این صورت از جای خالی برای آن استفاده می شود. مثال زیر را می توانید در این مورد مشاهده فرمایید:

/*Define initial value outside for loop*/
$k = 1;
for ( ; $k <= 20; $k += 3 ) {
  echo $k . '<br>';
}
  • تعریف تعداد دلخواه متغیر در دستور for: 

    شما می توانید هر تعداد متغیر را در بخش اول دستور for تعریف کنید. در نظر داشته باشید که هر کدام از آن ها با “ , ” از هم جدا می شوند.

  • استفاده از گام کاهشی به جای افزایشی در دستور for: 

    همان گونه که اشاره شد، می توانیم به جای گام افزایشی، از گام کاهشی در دستور for  استفاده کنیم.

/*Define decreasing value in for loop*/
for ( $l = 100; $l >= 1; $l -= 10 ) {
  echo $l . ' - ';
}
  • ننوشتن شرط وسط در دستور for: 

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

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

  • استفاده از گام کاهشی به جای افزایشی در دستور for: 

    همان گونه که اشاره شد، می توانیم به جای گام افزایشی، از گام کاهشی در دستور for  استفاده کنیم.

/*Use from variable to finalize for loop */
for ( $l = 100; $l; $l -= 10 ) {
  echo $l . ' - ';
}
  • قرار دادن گام افزایشی در داخل بلاک دستورات for: 

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

/*Using Increasing value inside for declaration block */
for ( $j = 1; $j <= 10; ) {
  echo $j * 3 . '<br>';
  $j ++;
}

بخش 3 : حلقه foreach در PHP

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

شما می توانید برای پیمایش آرایه، از دستور for نیز استفاده کنید. برای این منظور کافی است به ترتیب زیر عمل کنید:

$car_array = [ 'BMW', 'Benz', 'Prido shasi kootah', 'Samand shasi boland' ];
/*Using for loop to show an array elements*/
for ( $loop_counter = 0; $loop_counter < count( $car_array ); $loop_counter ++ ) {
  echo 'The name of this car is: ' . $car_array[ $loop_counter ] . '<br>';
}

//The return is something like this in the following
The name of this car is: BMW
The name of this car is: Benz
The name of this car is: Prido shasi kootah
The name of this car is: Samand shasi boland

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

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

/*Using foreach loop to show an array elements*/
foreach ( $car_array as $car ) {
  echo 'The name of this car is: ' . $car . '<br>';
}

در زیر یک مثال ساده دیگر برای آموزش foreach در پی اچ پی زده شده است:

/*Sample of range function to create an array*/
$msn_sample_array_with_range = range( 10, 40, 10 );
foreach ( $msn_sample_array_with_range as $value ) {
  echo $value . ' - ';
}

echo '<br>';
foreach ( range( 1, 10, 3 ) as $value ) {
  echo $value . ' - ';
}

//The return is something like this in the following
10 - 20 - 30 - 40 - 
1 - 4 - 7 - 10 - 

  • توضیح دستور foreach در PHP در صورت پیمایش با key و value: 

    ممکن است بخواهیم حلقه را بر روی یک Associative Array اجرا نماییم و بخواهیم به هر دو مقدار key و value در این نوع آرایه ها، دسترسی داشته باشیم.

    در این صورت دستور foreach به صورت زیر نوشته می شود:

$associative_car_array = [
  'first'  => 'bmw',
  'second' => 'benz',
  'third'  => 'Prido shasi kootah',
  'forth'  => 'Samand shasi nesfe',
];

/*Sample of foreach loop on associative array*/
foreach ( $associative_car_array as $key => $value ) {
  echo 'The ' . $key . ' car is: ' . $value . '<br>';
}

//The return is something like this in the following
The first car is: bmw
The second car is: benz
The third car is: Prido shasi kootah
The forth car is: Samand shasi nesfe
  • آموزش حلقه foreach با نوشتن به صورت syntax دیگر: 

    علاوه بر سینتکسی که در بالا به آن اشاره شد، شما برای حلقه foreach می توانید از syntax دیگری نیز استفاده کنید. در این نوع نوشتن، مشابه با دستور for، باید از کلمه کلیدی endforeach در انتهای بلاک دستورات foreach استفاده نمایید.

    نمونه ای از پیاده سازی حلقه foreach با syntax دیگر، به صورت زیر می باشد:

/*Another syntax in foreach loop*/
foreach ( range( 20, 40, 5 ) as $item ):
  echo $item . ' - ';
endforeach;

//The result is something like this:
20 - 25 - 30 - 35 - 40 -

بخش 4 : خروج از حلقه در PHP با دستور break

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

/*Sample of break in for loop*/
for ( $i = 1; $i <= 12; $i ++ ) {
  echo $i;
  if ( $i > 7 ) {
    break;
  }
  echo ' - ';
}

//The result is something like this:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8

بخش 5 : دستور continue در PHP

با استفاده از دستور continue در هنگام پیمایش در یک حلقه در php، می توانیم یک قدم از حلقه را رد کرده و از آن صرف نظر کنیم. به وسیله دستور continue می توانیم یک قدم از حلقه را بدون اجرای آن، رد نماییم.

مثالی از دستور continue در زیر آمده است:

/*Sample of continue in for loop*/
foreach ( range( 30, 50, 1 ) as $item ):
  if ( $item % 2 == 0 ) {
    continue;
  }
  echo $item . ' - ';
endforeach;

//The result is something like this:
31 - 33 - 35 - 37 - 39 - 41 - 43 - 45 - 47 - 49 -

بخش 6 : حلقه تو در تو در PHP

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

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

/*Nested for loop*/
for ( $m = 1; $m <= 5; $m ++ ) {
  foreach ( range( 10, 100, 10 ) as $item ) {
    echo $m * $item;
    if ( $item == 100 ) {
      break;
    }
    echo ' - ';
  }
  echo '<br>';
}

//The result is something like this in the following:
10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 100
20 - 40 - 60 - 80 - 100 - 120 - 140 - 160 - 180 - 200
30 - 60 - 90 - 120 - 150 - 180 - 210 - 240 - 270 - 300
40 - 80 - 120 - 160 - 200 - 240 - 280 - 320 - 360 - 400
50 - 100 - 150 - 200 - 250 - 300 - 350 - 400 - 450 - 500

استفاده از Nested loop یا حلقه تو در تو در پی اچ پی، بسیار کاربردی می باشد. برای درک بیشتر آن، مثال زیر زده شده است که در واقع نمایش یک جدول ضرب می باشد:

/*Multiplication table with nested for */
echo '<table class="msn-table-for-loop">';
for ( $m = 1; $m <= 10; $m ++ ) {
  echo '<tr class="msn-table-for-loop">';
  for ( $n = 1; $n <= 10; $n ++ ) {
    echo '<td class="msn-table-for-loop msn-padding-5">';
    echo $m * $n;
    echo '</td>';
  }
  echo '</tr>';
}
echo '</table>';
ساخت یک جدول ضرب با استفاده از حلقه تو در تو در PHP

بخش 7 : حلقه while در PHP

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

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

  • توضیح حلقه while در PHP:

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

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

    گام افزایشی در داخل حلقه مورد تغییر (افزایش یا کاهش) قرار می گیرد. در واقع هر بار با تکرار حلقه به مقدار متغیر حلقه، اضافه یا کم می شود. مثال زیر یک نمونه ساده از حلقه while می باشد.

$msn_simple_while = 0;
while ( $msn_simple_while < 100 ) {
  echo $msn_simple_while += 10;
  if ( $msn_simple_while >= 100 ) {
    break;
  }
  echo ' - ';
}

//The return is:
10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 100
  • کار با حلقه while در PHP با استفاده از syntax دیگر:

    همانند دستور for و  foreach ، شما می توانید از سینتکس دیگری برای پیاده سازی دستور while استفاده کنید. مثال زیر نمونه ای از کار با حلقه while با این سینتکس می باشد:

$msn_another_while_syntax = 110;
while ( $msn_another_while_syntax >= 0 ) :
  echo $msn_another_while_syntax -= 10;
  if ( $msn_another_while_syntax <= 0 ) {
    break;
  }
  echo ' - ';
endwhile;

//The result is something like this:
100 - 90 - 80 - 70 - 60 - 50 - 40 - 30 - 20 - 10 - 0
آموزش کامل حلقه ها در PHP - وبمستر وردپرس
  • حلقه نا متناهی while در پی اچ پی:

    در صورتی که شرط داخل حلقه while همواره درست یا true باشد، حلقه بی نهایت یا infinite loop در برنامه به وجود می آید. حلقه نا منتاهی باعث می شود برنامه در داخل حلقه باقی مانده و تا زمان پر شدن حافظه، در حلقه باقی بماند.

  • خروج از حلقه while با استفاده از دستور break در PHP:

    همانند سایر دستورات حلقه ها در PHP ، می توانیم از دستور break برای خارج شدن از حلقه در بین اجرای دستور while، استفاده نماییم.

  • ادامه کار حلقه while با استفاده از دستور continue در PHP:

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

  • استفاده از while های تو در تو در PHP:

    همانند دستورات قبلی که بیان شد، شما می توانید از دستورات while به صورت تو در تو استفاده نمایید. ضمن اینکه می توانیم از ترکیب دستورات شرطی و همین طور دستورات حلقه در PHP، به صورت تو در تو نیز استفاده کنیم.

  • نکته در مورد خارج شدن از حلقه های تو در تو توسط دستور break و دستور continue در PHP:

    بسیار پیش می آید، که ازحلقه های تو در تو یا شرط های تو در تو یا ترکیب آن ها در برنامه  استفاده کنیم. در این صورت اجرای دستور break یا دستور continue باعث می شود که اجرای برنامه از نزدیک ترین شرط یا حلقه به آن دستور خارج شود یا ادامه یابد.

/*Sample of using continue in while loop*/
$msn_using_continue_in_while_loop = 100;
while ( $msn_using_continue_in_while_loop > 0 ) {
  if ( $msn_using_continue_in_while_loop % 2 == 0 ) {
    $msn_using_continue_in_while_loop --;
    continue;
  } else {
    echo $msn_using_continue_in_while_loop;

    if ( $msn_using_continue_in_while_loop == 1 ) {
      break;
    } else {
      echo ' - ';
      $msn_using_continue_in_while_loop --;
    }
  }
}

//The result is something like this in the following:
99 - 97 - 95 - 93 - 91 - 89 - 87 - 85 - 83 - 81 - 79 - 77 - 75 - 73 - 71 - 69 - 67 - 65 - 63 - 61 - 59 - 57 - 55 - 53 - 51 - 49 - 47 - 45 - 43 - 41 - 39 - 37 - 35 - 33 - 31 - 29 - 27 - 25 - 23 - 21 - 19 - 17 - 15 - 13 - 11 - 9 - 7 - 5 - 3 - 1

بخش 8 : حلقه do while در PHP

دستور دیگری که برای حلقه ها در PHP مورد استفاده قرار می گیرد، دستور do while می باشد.

بر عکس حلقه while که ابتدا شرط حلقه چک می شود و سپس عملیات داخل حلقه، انجام می گردد، در حلقه do while ابتدا دستورات داخل بلاک do while اجرا می شوند و سپس شرط حلقه چک می شود.

استفاده از سینتکس دیگر برای دستور do while امکان پذیر نیست. ضمن اینکه مانند سایر حلقه ها در PHP می توان از این حلقه در حلقه های تو در تو نیز استفاده کرد.

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

/*Sample of do while loop*/
$msn_simple_do_while = 1;
do {
  if ( $msn_simple_do_while % 2 == 1 ) {
    $msn_simple_do_while ++;
    continue;
  } else {
    echo $msn_simple_do_while;
    if ( $msn_simple_do_while < 98 ) {
      echo ' - ';
    }
    $msn_simple_do_while ++;
  }
} while ( $msn_simple_do_while < 100 );

//The result is something like this in the following:
2 - 4 - 6 - 8 - 10 - 12 - 14 - 16 - 18 - 20 - 22 - 24 - 26 - 28 - 30 - 32 - 34 - 36 - 38 - 40 - 42 - 44 - 46 - 48 - 50 - 52 - 54 - 56 - 58 - 60 - 62 - 64 - 66 - 68 - 70 - 72 - 74 - 76 - 78 - 80 - 82 - 84 - 86 - 88 - 90 - 92 - 94 - 96 - 98

نتیجه گیری برای آموزش حلقه ها در PHP

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

در ادامه با حلقه for در PHP آشنا شدیم. سپس با حلقه foreach برای پیمایش آرایه آشنا گشتیم.

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

سپس در مورد حلقه های تو در تو در PHP صحبت کردیم. در ادامه نیز کلیه نکات مرتبط با حلقه while را مورد بررسی قرار دادیم. در انتها نیز نکات مرتبط با حلقه do while مورد بحث قرار گرفت.

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

اگر شما از این موارد آگاه هستید، حتما در بخش نظرات عنوان کنید تا آن را به مقاله « انواع حلقه ها در PHP » اضافه کنیم. در ضمن اگر این مقاله را مفید دیدید، حتما آن را به دوستان خود معرفی کرده یا در شبکه های اجتماعی به اشتراک بگذارید.

نظر شما در درباره این مقاله چیست؟

راهنما برای مطالعه بیشتر:

برای تولید مقاله انواع عملگرها در PHP ، از لینک های زیر استفاده شده است که برای مطالعه بیشتر، می توانید به آن ها مراجعه کنید:

راهنما برای خواندن سایر مقالات سایت به صورت دسته بندی شده:

شما می توانید از طریق لینک های کاربردی زیر به سایر مقالات سایت که کاملا بصورت طبقه بندی شده وجود دارد، مراجعه نموده و از آن ها استفاده کنید:

بازگشت به وبلاگ وبمستر وردپرس
آموزش حلقه ها در PHP – آموزش کار با حلقه for و while و دستور break
5 (100%) 3 vote[s]