continue

(PHP 4, PHP 5, PHP 7)

continue deyimi döngü yapılarının içinde kullanılır. Bu deyim kullanıldığında, döngünün kalan kısmı atlanır ve sonraki yineleme başlatılır.

Bilginize: PHP'de switch deyimi continue deyiminin kullanılabileceği döngülerden biri olarak kabul edilmektedir. continue deyimi sayısal değer içermeyen break gibi davranır. Eğer switch bir döngü içindeyse continue 2 dıştaki döngünün sonraki yinelemesinden devam eder.

continue deyimi ile seçime bağlı sayısal bir değer kullanılarak, atlama işleminin kaç seviye üstteki döngüye kadar uygulanacağı belirtilebilir. Öntanımlı değer 1 olup geçerli döngünün sonuna atlanır.

<?php
foreach ($arr as $key => $value) {
    if (!(
$key 2)) { // tek sayıları atla
        
continue;
    }
    
do_something_odd($value);
}

$i 0;
while (
$i++ < 5) {
    echo 
"Dış<br />\n";
    while (
1) {
        echo 
"Orta<br />\n";
        while (
1) {
            echo 
"İç<br />\n";
            continue 
3;
        }
        echo 
"Bu hiçbir zaman çıktı vermez.<br />\n";
    }
    echo 
"Bundan da çıktı alamazsınız.<br />\n";
}
?>

continue deyiminden sonra noktalı virgül konmazsa bu durum karışıklığa yol açabilir. Yapmamanız gereken ile ilgili bir örnek:

<?php
for ($i 0$i 5; ++$i) {
    if (
$i == 2)
        continue
    print 
"$i\n";
}
?>

Şu biçimde bir çıktı almayı bekleyebilirsiniz:

0
1
3
4

Ancak çıktı PHP 5.4.0 öncesinde şu şekilde olacaktır:

2

Çünkü continue print "$i\n"; satırının tamamı tek bir ifade olarak değerlendirilir, dolayısıyla print sadece $i == 2 doğruysa çağrılır. (print'in dönen değeri continue için sayısal değer olur.)

Bilginize:

PHP 5.4.0 ve sonrasında yukarıdaki örnek E_COMPILE_ERROR hatasıyla sonuçlanır.

continue ile ilgili değişiklikler
Sürüm: Açıklama
7.0.0 switch veya bir döngü dışındaki continue deyimleri artık derleme sırasında saptanmakta ve bir E_COMPILE_ERROR çıktılanmaktadır, evvelce çalışma anında saptanırdı.
5.4.0 continue 0; artık geçerli değildir. Önceki sürümlerde continue 1; ile aynı kabul edilirdi.
5.4.0 Sayı yerine değişken aktarımı kaldırıldı. (örn, $num = 2; continue $num;)