آشنایی با حلقه for در php
دستور for یکی از دستورات حلقه در php می باشد و با استفاده از آن می توانیم مجموعه ای از دستورات را به تعداد دلخواه تکرار کنیم.
سینتکس دستور for:
for (expr1; expr2; expr3) statement
چنانچه مشاهده می کنید، دستور for در شرط خودش سه بخش دارد.
- expr1 یک مقدار غیر شرطی است که در ابتدای لوپ بررسی می شود. این مقدار به عنوان شمارنده حلقه در نظر گرفته می شود.
- expr2 یک شرط منطقی است که ابتدای هر بار تکرار چک می شود. اگر شرط درست بود، تکرار انجام می شود. در غیر اینصورت حلقه خاتمه می یابد.
- expr3 در پایان هر بار تکرار اجرا می شود و مشخص کننده نحوه تغییر شمارنده ما است. ممکن است بخواهیم شمارنده ما افزایشی باشد و یا کاهشی. (به میزان دلخواه)
مثلا می خواهیم اعداد 1 تا 9 را با استفاده از حلقه for چاپ کنیم:
for ($i=1; $i < 10; $i++) echo $i; //output: 123456789
هر کدام از expr ها می توانند بیش از یک مقدار باشند. در اینصورت باید آن ها را با کاما از هم جدا کنیم
for ($i=1, $j=2; $i < 10; $i++) echo $i; //output: 123456789
در دستور بالا، دو شمارنده i و j تعریف کرده ایم.
for ($i=1, $j=2; $i < 10, $j < 5; $i++, $j++) echo $i; //output: 123
در دستور بالا دو شرط مختلف قرار دادیم. برای اجرا شدن دستورات، لازم است هر دو شرط درست باشد. زمانی که از یک شمارنده در شرط استفاده می کنیم، باید نحوه تغییر آن در expr3 را هم مشخص کنیم تا حلقه بی نهایت تشکیل نشود. (گاها)
ممکن است بخواهیم از یک شرط درونی برای اجرا شدن دستورات استفاده کنیم. در اینصورت کافیست expr2 را خالی بگذاریم (حلقه بی نهایت تشکیل می شود) :
for ($i=1; ; $i++) { if( $i > 9 ){ break; } echo $i; }
نکته: دستور break در حلقه for باعث پایان یافتن حلقه می شود.
می توانستیم شمارنده حلقه را خارج از دستور تعریف کنیم:
$i=1; for (;;) { if( $i > 9 ){ break; } echo $i; $i++; }
چون expr3 در انتهای حلقه اجرا می شود، پس می توانستیم دستور چاپ کردن را قبل از دستور تغییر شمارنده بیاوریم:
for ($i=1; $i < 10; print $i, $i++);
همچنین می توانیم از colon syntax برای حلقه for استفاده کنیم:
for ($i=1; $i < 10; $i++): echo $i; endfor;
چاپ مقادیر آرایه با استفاده از حلقه for:
$x = array(1, 2, 3, 4, 5, 6, 7, 8, 9); for( $i=0; $i < count($x); $i++ ){ echo $x[$i]; }
در دستور بالا، تابع count با هر بار تکرار حلقه اجرا می شود. بهتر است مقدار آن را در expr1 وارد نماییم:
$x = array(1, 2, 3, 4, 5, 6, 7, 8, 9); for( $i=0, $count=count($x); $i < $count; $i++ ){ echo $x[$i]; }
آموزش بعدی >> آشنایی با حلقه foreach در php