Eğer PHP 'exit' bir döngü miyim?

5 Cevap php

Benim PHP kodunda bazı hata denetimi yapıyor, bir döngü var. Başlangıçta böyle bir şey baktım ...

foreach($results as $result) {
    if (!$condition) {
        $halt = true;
        ErrorHandler::addErrorToStack('Unexpected result.');
    }

    doSomething();
 }

if (!$halt) {
    // do what I want cos I know there was no error
}

Bu, tüm iyi ve iyi çalışıyor, ama yine de gerekmez bir hata sonrasında rağmen döngü edilir. Döngü kaçmak için bir yolu var mı?

5 Cevap

Sen break deyimi arıyoruz.

$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* You could also write 'break 1;' here. */
    }
    echo "$val<br />\n";
}

Diğer mesajlar belirtildiği gibi, mola kelime kullanabilirsiniz. Ima ama anlatmadık bir şey anahtar kelime kırmak için kaç düzeyleri PHP anlatmak için sayısal bir değer alabilir olmasıdır.

Eğer bilgi bir parça bulmak için çalışırken, birbirlerine iç içe üç foreach döngüleri varsa Örneğin, her üç iç içe döngüler çıkmak için 'break 3' yapabilirdi. Bu 'while', 'do-while', ya da 'anahtar' yapıları, 'foreach', 'for' için çalışacak.

$person = "Rasmus Lerdorf";
$found = false;

foreach($organization as $oKey=>$department)
{
   foreach($department as $dKey=>$group)
   {
      foreach($group as $gKey=>$employee)
      {
         if ($employee['fullname'] == $person)
         {
            $found = true;
            break 3;
         }
      } // group
   } // department
} // organization

break; sizin döngü bırakır.

continue; kadar uzun durumu hala geçerli olduğu gibi, bu döngünün kalanı için herhangi bir kod atlar ve bir sonraki döngü devam ediyor.

kullanmak break

Sen ara kullanmanız gerekir.

Here is a live code snippet showing you how - http://init.me/106093/break-statement-in-foreach-loop (right-click to open in new window)