bookmark_borderآرگومان break و continue در php

این دو دستور تو php آرگومان میگیرن. مثلا میتونیم بنویسیم break 1 یا continue 2. چیکار میکنن؟ این تیکه کد رو ببینیم.

<?php
foreach (range(1,4) as $i) {
  foreach (range(1,4) as $j) {
    if ($i == 2) continue 2;
    if ($j == 3) continue;
    echo "$i -- $j" . PHP_EOL;
  }
}

خب خروجی چطور میشه؟ اینطور

1 -- 1
1 -- 2
1 -- 4
3 -- 1
3 -- 2
3 -- 4
4 -- 1
4 -- 2
4 -- 4

شرط $j == 3 یه شرط معمولیه، پس وقتی حلقه داخلی به سه میرسه چیزی چاپ نمیشه. شرط بالایی که $i == 2 هست، continue 2 رو اجرا میکنه. این عبارت یعنی نه تنها حلقه فعلی، که حلقه بعدی رو هم continue میکنه، یعنی حلقه $i.

یعنی آرگومان continue تعداد حلقه‌هایی که قراره پرش بشن رو تعیین میکنه.

همچنین continue بدون آرگومان یعنی همون continue 1 یعنی حلقه فعلی.

تمام این ها در مورد break و در مورد تمام انواع دیگه حلقه ها هم صدق میکنه. همچنین در مورد switch هم صدق میکنه، گرچه continue و break داخل switch حدودا یک معنی میدن.