PHP standart kontrol akışı yapılarına — koşullu ifadeler (, , ), döngüler (, , ) ve dallanma (, ) — ek olarak diziler için ve modern ifadesi gibi birkaç ayırt edici özelliği de içerir.
ifswitchmatchforforeachwhilebreakcontinueforeachmatch<?php
if ($score >= 90) {
$grade = "A";
} elseif ($score >= 80) {
$grade = "B";
} else {
$grade = "F";
}
// ternary and null coalescing
$status = $age >= 18 ? "adult" : "minor";
$name = $input ?? "default"; // ?? — use default if null/unset (PHP 7+)
$value ??= "x"; // ??= assign if null (PHP 7.4)
Null birleştirme operatörü ?? PHP'de varsayılan değerler için yoğun şekilde kullanılır (sol taraf null veya tanımlanmamışsa sağ tarafı döndürür) — isset() kontrollerinden daha temizdir.
switch ($day) {
case "Sat":
case "Sun":
$type = "weekend"; break; // ⚠️ break needed or it falls through
default:
$type = "weekday";
}
// match (PHP 8) — cleaner: returns a value, STRICT comparison, NO fall-through
$type = match($day) {
"Sat", "Sun" => "weekend", // multiple values, no break needed
default => "weekday",
};
match ifadesi (PHP 8) switch üzerinde modern bir iyileştirmedir: bir değer döndürür, katı (===) karşılaştırma kullanır ve fall-through'a izin vermez (break gerekli değildir) — yeni kodda tercih edilir.
for ($i = 0; $i < 10; $i++) { }
foreach ($items as $item) { } // iterate array values
foreach ($map as $key => $value) { } // keys + values — the PHP idiom for arrays
while ($condition) { }
do { } while ($condition);
foreach, PHP'de dizileri yinelemek için deyimsel, en çok kullanılan döngüdür (ilişkili diziler için $key => $value formu ile).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Kontrol akışı, mantığı ifade etmenin temel mekanizmasıdır ve her programda kullanılır, bu nedenle PHP'nin yapılarını anlamak temel, günlük bilgidir.
Çoğu standartdır, ancak birkaç PHP'ye özgü nokta önemlidir: foreach PHP'nin her yerde kullanılan dizilerini yinelemek için deyimsel, baskın döngüdür (haritalar için $key => $value formu ile); null birleştirme operatörü ?? (ve ??=) temiz varsayılan işleme için yoğun şekilde kullanılır (ayırt edici bir PHP diyomu); ve modern match ifadesi (PHP 8) hataya açık switch üzerinde önemli bir iyileştirmedir — bir değer döndürür, katı karşılaştırma kullanır ve fall-through hatalarını elimine eder (switch'in klasik pitfall'u break unutmaktır).
Bu yapıları bilmek ve modern, daha güvenli formları tercih etmek (match yerine switch, varsayılanlar için ??) temiz, deyimsel, hatasız PHP mantığı yazmanın günlük bilgisidir ve hem temellerin hem de modern PHP'nin iyileştirmelerinin akıcı kullanımını yansıtır.