آشنایی با دستور break در php
چنانچه در مقاله های ساختارهای کنترلی در php مشاهده کردیم، وظیفه اصلی این دستور، خاتمه دادن به حلقه می باشد.
دستور break برای خاتمه دادن به حلقه های تو در تو
این دستور می تواند یک پارامتر نیز بگیرد. این کار در حلقه های تو در تو انجام می شود و به وسیله آن مشخص می کنیم کدام حلقه خاتمه یابد.
اگر مقدار 1 دهیم، حلقه جاری break می شود. اگر مقدار 2 دهیم حلقه والد حلقه جاری break می شود، و بدین ترتیب تا آخر:
$i = 0; while (++$i) { switch ($i) { case 5: echo 'At 5\n'; break 1; /* Exit only the switch. */ case 10: echo 'At 10; quitting \n'; break 2; /* Exit the switch and the while. */ default: break; } }
اگر در حلقه های تو در تو از break بدون آرگومان استفاده شود، فقط حلقه جاری خاتمه می یابد.
آرگومان break می توانست در پرانتز باشد. مانند (1)break و (2)break
دستور break برای خاتمه دادن به حلقه switch
می دانیم که دستور switch لازم است در تمام case بلوک ها قرار گیرد تا در صورت صحت case، case بعدی اجرا نشود و حلقه خاتمه یابد:
$x = 2; switch( $x ) { case 1: echo 1; break; case 2: echo 2; break; } //output: 2
دستور break برای خاتمه دادن به حلقه foreach
حلقه foreach به صورت پیشفرض یکمرتبه کل آرایه را پیمایش می کند.
گاهی اوقات نیاز داریم تحت شرایط خاص و برای المان های مشخص پیمایش ها صورت گیرد. در اینصورت برای شرط های غیر از آن، حلقه را break می کنیم.
مثلا در حلقه زیر فقط قصد داریم، تکرارها را تحت اعداد 0 تا 2 انجام شود:
$number = array (0, 1, 2, 3, 4); foreach ($number as $element) { if ($element > 2) break; echo $element; } //output:012
دستور break برای خاتمه دادن به حلقه for
چنانچه می دانیم، حلقه for دستورات ما را به تعداد مشخص تکرار می کرد.
تحت شرایطی نیاز داشتیم که شرط for را درون حلقه ست کنیم و خود حلقه for بی نهایت باشد.
در اینصورت لازم میشد که تحت شرایطی که مورد نیاز ما نیست، حلقه را break کنیم:
for ($i=1; ; $i++) { if( $i > 9 ) break; echo $i; }
دستور break برای خاتمه دادن به حلقه while و do-while
می دانیم که حلقه while یک شرط ابتدایی به عنوان آرگومان دریافت می کرد.
ممکن است ما یک شرط درونی نیز نیاز داشته باشیم و در صورت درست نبودن آن شرط بخواهیم کل حلقه را break کنیم. مثلا:
$x = 1; while( $x < 4 ): if( $x > 3 ) break; echo $x++; endwhile; //output: 123
می توانستیم با قرار دادن یک شرط در حلقه do-while، از اجرا شدن تکرار جلوگیری کرده و از حلقه خارج شویم:
$x = 1; do { if( $x > 2 ) break; echo $x++; } while( $x < 4 ) //output: 12