PHP mempunyai konstruksi aliran kawalan standard — kondisional (, , ), gelung (, , ), dan percabangan (, ) — serta beberapa ciri khas seperti untuk array dan ungkapan moden.
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)
Operator null coalescing ?? digunakan secara meluas dalam PHP untuk nilai lalai (mengembalikan sisi kanan jika sisi kiri adalah null atau tidak ditetapkan) — lebih bersih daripada semakan isset().
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",
};
Ungkapan match (PHP 8) adalah penambahbaikan moden berbanding switch: ia mengembalikan nilai, menggunakan perbandingan ketat (===), dan tidak mempunyai fall-through (tidak perlu break) — lebih disukai dalam kod baru.
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 adalah gelung idiomatik dan paling banyak digunakan dalam PHP untuk mengulangi array (dengan bentuk $key => $value untuk array bersekutu).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Aliran kawalan adalah mekanisme asas untuk mengungkapkan logik, digunakan dalam setiap program, jadi memahami konstruksi PHP adalah pengetahuan asas sehari-hari.
Kebanyakan adalah standard, tetapi beberapa poin khusus PHP adalah penting: foreach adalah gelung idiomatik dan dominan untuk mengulangi array yang ada di mana-mana dalam PHP (dengan bentuk $key => $value untuk peta); operator null coalescing ?? (dan ??=) digunakan secara meluas untuk pengendalian lalai yang bersih (idiom PHP yang berbeza); dan ungkapan match moden (PHP 8) adalah penambahbaikan penting berbanding switch yang mudah tersesat — mengembalikan nilai, menggunakan perbandingan ketat, dan menghapuskan bug fall-through (perangkap switch klasik lupa break).
Mengetahui konstruksi ini, dan mengutamakan bentuk moden dan lebih selamat (match berbanding switch, ?? untuk lalai), adalah pengetahuan sehari-hari untuk menulis logik PHP yang bersih, idiomatik, dan bebas bug, mencerminkan kecairan dengan asas dan penambahbaikan PHP moden.