حلقه ها در PHP – مقدمه
در این بخش از آموزش PHP، به آموزش حلقه ها در PHP می پردازیم. در ابتدا با آموزش حلقه for در PHP آغاز می کنیم.
سپس در مورد حلقه while و نحوه کار حلقه while در php صحبت خواهیم کرد. سپس در مورد حلقه foreach در پی اچ پی برای پیمایش آرایه ها آموزش خواهیم داد.
سپس به توضیح حلقه do while در PHP خواهیم پرداخت. همین طور در مورد حلقه های تو در تو در php توضیح خواهیم داد.
در ادامه آموزش به بررسی دستور break در PHP می پردازیم. در این قسمت با نحوه خروج از حلقه ها در php آشنا می شویم.
پس از آن در مورد دستور continue در php صحبت می کنیم و سپس در مورد تفاوت حلقه for و foreach در PHP می پردازیم.
در بخش های مختلف این آموزش در مورد حلقه ها در پی اچ پی، مثال های مختلفی می زنیم تا مطلب به صورت کامل و در کمترین زمان ممکن، برای شما دوستان عزیز قابل درک و فهم باشد.
این آموزش، یکی از بخش های آموزش های رایگان PHP در سایت وبمستر وردپرس می باشد. در صورتی که می خواهید به کلیه بخش های این سری آموزشی رایگان دسترسی داشته باشید، می توانید از لینک زیر استفاده کنید:
بخش ۱ : کاربرد حلقه ها در PHP چیست؟
در کلیه زبان های برنامه نویسی، عملا زمانی که نیاز داریم تا کاری را به صورت مکرر انجام دهیم، از حلقه ها استفاده می کنیم. در واقع با استفاده از حلقه یا loop در زبان های برنامه نویسی، می توانیم کار یا کارهایی را، چندین بار انجام دهیم.
حلقه ها در PHP نیز مانند سایر زبان های برنامه نویسی، برای همین منظور استفاده می شوند. در واقع با استفاده از حلقه های تکرار در پی اچ پی، کاری را بر اساس یک شرط یا زمان یا تعداد خاصی، به انجام می رسانیم.
چندین دستور برای استفاده از حلقه ها در زبان PHP موجود می باشد. در قسمت های زیر سعی خواهیم کرد به هر کدام از آن ها اشاره کنیم.
بخش ۲ : آموزش حلقه for در PHP
برای انجام تکرار به تعداد معین در حلقه، از حلقه for در PHP می توانیم استفاده کنیم. با استفاده از حلقه for می توانیم کاری را با تعداد مشخص و خاصی انجام دهیم.
به عنوان مثال در زیر اعداد بین ۲۰۰۰ تا ۳۰۰۰ را با گام ۱۰۰ تایی چاپ می کنیم.
/*Simple for loop example*/ for ( $i = 2000; $i <= 3000; $i += 100 ) { echo $i; echo '<br>'; } //The return is something like this in the following: ۲۰۰۰ ۲۱۰۰ ۲۲۰۰ ۲۳۰۰ ۲۴۰۰ ۲۵۰۰ ۲۶۰۰ ۲۷۰۰ ۲۸۰۰ ۲۹۰۰ ۳۰۰۰
/*Another syntax in using for loop*/ for ( $i = 2000; $i <= 3000; $i += 100 ) : echo $i; echo '<br>'; endfor;
چند نکته در مورد دستور for در PHP
در مورد حلقه ی for در PHP می توانیم به یک سری از نکات اشاره کنیم که در زیر به صورت لیست وار به آن ها اشاره شده است:
/*Define initial value outside for loop*/ $k = 1; for ( ; $k <= 20; $k += 3 ) { echo $k . '<br>'; }
/*Define decreasing value in for loop*/ for ( $l = 100; $l >= 1; $l -= 10 ) { echo $l . ' - '; }
/*Use from variable to finalize for loop */ for ( $l = 100; $l; $l -= 10 ) { echo $l . ' - '; }
مشکل لوپ بی نهایت حلقه ها در PHP
در نظر داشته باشید که هم در صورت نداشتن شرط حلقه و همین طور، نداشتن گام افزایشی، ممکن است دچار مشکل حلقه بی نهایت شویم.
در infinite loop ، برنامه از حلقه خارج نشده و تا زمانی که Memory سیستمی که در حال اجرای برنامه است، پر شود، از حلقه خارج نخواهد شد.
/*Using Increasing value inside for declaration block */ for ( $j = 1; $j <= 10; ) { echo $j * 3 . '<br>'; $j ++; }
بخش ۳ : حلقه 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 ۱۰ - ۲۰ - ۳۰ - ۴۰ - ۱ - ۴ - ۷ - ۱۰ -
تفاوت for و foreach در PHP چیست؟
در نظر داشته باشید در هنگام استفاده از حلقه for می باید تعداد گام های حلقه و همین طور نقطه شروع و پایان مشخص باشد. اما در حلقه foreach نیازی به دانستن تعداد گام های حلقه نمی باشد.
نقطه شروع اولین آیتم و نقطه پایان آخرین آیتم در عنصر فرستاده شده به حلقه 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
/*Another syntax in foreach loop*/ foreach ( range( 20, 40, 5 ) as $item ): echo $item . ' - '; endforeach; //The result is something like this: ۲۰ - ۲۵ - ۳۰ - ۳۵ - ۴۰ -
بخش ۴ : خروج از حلقه در 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: ۱ - ۲ - ۳ - ۴ - ۵ - ۶ - ۷ - ۸
بخش ۵ : دستور 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: ۳۱ - ۳۳ - ۳۵ - ۳۷ - ۳۹ - ۴۱ - ۴۳ - ۴۵ - ۴۷ - ۴۹ -
بخش ۶ : حلقه تو در تو در 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: ۱۰ - ۲۰ - ۳۰ - ۴۰ - ۵۰ - ۶۰ - ۷۰ - ۸۰ - ۹۰ - ۱۰۰ ۲۰ - ۴۰ - ۶۰ - ۸۰ - ۱۰۰ - ۱۲۰ - ۱۴۰ - ۱۶۰ - ۱۸۰ - ۲۰۰ ۳۰ - ۶۰ - ۹۰ - ۱۲۰ - ۱۵۰ - ۱۸۰ - ۲۱۰ - ۲۴۰ - ۲۷۰ - ۳۰۰ ۴۰ - ۸۰ - ۱۲۰ - ۱۶۰ - ۲۰۰ - ۲۴۰ - ۲۸۰ - ۳۲۰ - ۳۶۰ - ۴۰۰ ۵۰ - ۱۰۰ - ۱۵۰ - ۲۰۰ - ۲۵۰ - ۳۰۰ - ۳۵۰ - ۴۰۰ - ۴۵۰ - ۵۰۰
استفاده از 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>';
نکته مهم در استفاده از دستور break و continue در حلقه های تو در تو
حالت پیش فرض برای این دستورات break 1 و continue 1 می باشد. این یعنی باعث می شود از اولین حلقه خارج شود یا تکرار صورت بگیرد. در صورتی که بخواهیم از دومین حلقه یا سومین حلقه خارج شود، کافی است از break 2 یا break 3 یا continue 2 و مشابه آن استفاده کنیم.
بخش ۷ : حلقه while در PHP
دستور دیگری که برای حلقه ها در PHP مورد استفاده قرار می گیرد، دستور 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: ۱۰ - ۲۰ - ۳۰ - ۴۰ - ۵۰ - ۶۰ - ۷۰ - ۸۰ - ۹۰ - ۱۰۰
تفاوت حلقه for و while در PHP چیست؟
مهم ترین تفاوت حلقه for و while در دانستن تعداد گام های حلقه می باشد. در حلقه for عملا تعداد تکرار های حلقه در برنامه مشخص است.
اما در حلقه 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: ۱۰۰ - ۹۰ - ۸۰ - ۷۰ - ۶۰ - ۵۰ - ۴۰ - ۳۰ - ۲۰ - ۱۰ - ۰
/*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: ۹۹ - ۹۷ - ۹۵ - ۹۳ - ۹۱ - ۸۹ - ۸۷ - ۸۵ - ۸۳ - ۸۱ - ۷۹ - ۷۷ - ۷۵ - ۷۳ - ۷۱ - ۶۹ - ۶۷ - ۶۵ - ۶۳ - ۶۱ - ۵۹ - ۵۷ - ۵۵ - ۵۳ - ۵۱ - ۴۹ - ۴۷ - ۴۵ - ۴۳ - ۴۱ - ۳۹ - ۳۷ - ۳۵ - ۳۳ - ۳۱ - ۲۹ - ۲۷ - ۲۵ - ۲۳ - ۲۱ - ۱۹ - ۱۷ - ۱۵ - ۱۳ - ۱۱ - ۹ - ۷ - ۵ - ۳ - ۱
بخش ۸ : حلقه 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: ۲ - ۴ - ۶ - ۸ - ۱۰ - ۱۲ - ۱۴ - ۱۶ - ۱۸ - ۲۰ - ۲۲ - ۲۴ - ۲۶ - ۲۸ - ۳۰ - ۳۲ - ۳۴ - ۳۶ - ۳۸ - ۴۰ - ۴۲ - ۴۴ - ۴۶ - ۴۸ - ۵۰ - ۵۲ - ۵۴ - ۵۶ - ۵۸ - ۶۰ - ۶۲ - ۶۴ - ۶۶ - ۶۸ - ۷۰ - ۷۲ - ۷۴ - ۷۶ - ۷۸ - ۸۰ - ۸۲ - ۸۴ - ۸۶ - ۸۸ - ۹۰ - ۹۲ - ۹۴ - ۹۶ - ۹۸
تفاوت حلقه while و do while در PHP چیست؟
مهم ترین تفاوت حلقه while و do while در php این می باشد که حتی اگر شرط حلقه do while برقرار نباشد، حلقه حداقل یک بار انجام می شود. اما در حلقه while در صورت برقرار نبودن شرط حلقه، دستورات داخل حلقه به هیچ عنوان اجرا نخواهند شد.
نتیجه گیری برای آموزش حلقه ها در PHP
در این سری از آموزش های PHP ، با انواع حلقه ها در PHP آشنا شدیم. ابتدا در مورد کاربرد حلقه ها و ساختار آن ها در زبان های برنامه نویسی صحبت کردیم.
در ادامه با حلقه for در PHP آشنا شدیم. سپس با حلقه foreach برای پیمایش آرایه آشنا گشتیم.
سپس نحوه خروج از حلقه در پی اچ پی با استفاده از دستور break را مورد بررسی قرار دادیم. همچنین کاربرد دستور continue برای ادامه کار حلقه بدون اجرای یک مرحله از آن را تشریح نمودیم.
سپس در مورد حلقه های تو در تو در PHP صحبت کردیم. در ادامه نیز کلیه نکات مرتبط با حلقه while را مورد بررسی قرار دادیم. در انتها نیز نکات مرتبط با حلقه do while مورد بحث قرار گرفت.
ممکن است شما با موارد بیشتری در این حوزه آشنا باشید، که ما فراموش کرده ایم تا آن ها را در این مقاله قرار دهیم.
اگر شما از این موارد آگاه هستید، حتما در بخش نظرات عنوان کنید تا آن را به مقاله « انواع حلقه ها در PHP » اضافه کنیم. در ضمن اگر این مقاله را مفید دیدید، حتما آن را به دوستان خود معرفی کرده یا در شبکه های اجتماعی به اشتراک بگذارید.
راهنما برای مطالعه بیشتر:
برای تولید مقاله انواع عملگرها در PHP ، از لینک های زیر استفاده شده است که برای مطالعه بیشتر، می توانید به آن ها مراجعه کنید:
راهنما برای خواندن سایر مقالات سایت به صورت دسته بندی شده:
شما می توانید از طریق لینک های کاربردی زیر به سایر مقالات سایت که کاملا بصورت طبقه بندی شده وجود دارد، مراجعه نموده و از آن ها استفاده کنید:
ثبت ديدگاه