Branch logic with if, elseif, and else. PHP also offers match (PHP 8+) as an expression-based alternative to long switch blocks.
if / elseif / else
if ($score >= 90) {
$grade = 'A';
} elseif ($score >= 80) {
$grade = 'B';
} else {
$grade = 'C';
}
Truthy and falsy
Falsy values: false, 0, 0.0, '', '0', null, empty arrays. Prefer explicit checks for business rules—do not rely on loose truthiness for money or permissions.
match expression (PHP 8+)
$label = match ($status) {
'draft' => 'Draft',
'published' => 'Live',
default => 'Unknown',
};
Self-check
- When is
elseifevaluated? - Why prefer
===in permission checks?