PHP ina control-flow constructs za kawaida — conditionals (, , ), loops (, , ), na branching (, ) — pamoja na vipengele kadhaa vya kipekee kama kwa arrays na expression ya kisasa.
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 coalescing operator ?? hutumika sana katika PHP kwa defaults (hurudisha upande wa kulia ikiwa wa kushoto ni null au haujawekwa) — safi kuliko isset() checks.
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 expression (PHP 8) ni uboreshaji wa kisasa juu ya switch: hurudisha thamani, hutumia strict (===) comparison, na haina fall-through (hakuna break inayohitajika) — inapendekezwa katika code mpya.
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 ndiyo loop ya kawaida (idiomatic) na inayotumika zaidi katika PHP kwa kuzunguka arrays (ikiwa na muundo wa $key => $value kwa associative arrays).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Control flow ndiyo mfumo wa msingi wa kueleza mantiki, unaotumika katika kila programu, kwa hivyo kuelewa constructs za PHP ni ujuzi wa kila siku wa msingi.
Nyingi ni za kawaida, lakini mambo machache mahususi ya PHP yana umuhimu: foreach ndiyo loop ya kawaida na kuu kwa kuzunguka arrays za PHP zilizoenea (ikiwa na muundo wa $key => $value kwa maps); null coalescing operator ?? (na ??=) hutumika sana kwa ushughulikiaji safi wa defaults (idiom ya PHP ya kipekee); na match expression ya kisasa (PHP 8) ni uboreshaji muhimu juu ya switch yenye makosa rahisi — ikirudisha thamani, ikitumia strict comparison, na kuondoa fall-through bugs (mtego wa kawaida wa switch wa kusahau break).
Kujua constructs hizi, na kupendelea maumbo ya kisasa na salama zaidi (match badala ya switch, ?? kwa defaults), ni ujuzi wa kila siku kwa kuandika mantiki ya PHP safi, ya kawaida (idiomatic), isiyo na bugs, ukionyesha umahiri wa misingi na maboresho ya PHP ya kisasa.