(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.
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;) |