PHP имеет стандартные управляющие конструкции — условные операторы (, , ), циклы (, , ) и ветвление (, ) — плюс несколько отличительных особенностей, таких как для массивов и современное выражение .
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-объединения ?? широко используется в PHP для значений по умолчанию (возвращает правую сторону, если левая равна null или не установлена) — чище, чем проверки 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",
};
Выражение match (PHP 8) — это современное улучшение switch: оно возвращает значение, использует строгое сравнение (===) и не имеет сквозного перехода (не требуется break) — предпочтительно в новом коде.
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 для итерации по массивам (с формой $key => $value для ассоциативных массивов).
foreach ($items as $item) {
if ($item->skip) continue; // skip to next iteration
if ($item->stop) break; // exit the loop
}
Управление потоком выполнения — это базовый механизм для выражения логики, используемый в каждой программе, поэтому понимание конструкций PHP — это фундаментальное повседневное знание.
Большинство стандартны, но несколько специфичных для PHP моментов важны: foreach — это идиоматичный, доминирующий цикл для итерации повсеместных в PHP массивов (с формой $key => $value для словарей); оператор null-объединения ?? (и ??=) широко используется для чистой работы со значениями по умолчанию (характерный PHP-идиом); и современное выражение match (PHP 8) — это важное улучшение над подверженным ошибкам switch — возвращает значение, использует строгое сравнение и устраняет ошибки сквозного перехода (классическая ловушка switch забывчивого break).
Знание этих конструкций и предпочтение современных, более безопасных форм (match вместо switch, ?? для значений по умолчанию) — это повседневное знание для написания чистой, идиоматичной, безошибочной PHP-логики, отражающее владение как основами, так и современными улучшениями PHP.