Nosacījumu konstrukcijas ļauj izpildīt dažādu kodu atkarībā no nosacījuma rezultāta. Tas ir viens no programmēšanas pamatbūvblokiem.

if

Vienkāršākais nosacījums — izpilda kodu, ja nosacījums ir patiess:

<?php
$vecums = 20;

if ($vecums >= 18) {
echo "Esi pieaugušais.";
}
?>

if...else

Pievieno alternatīvu, ja nosacījums nav patiess:

<?php
$vecums = 15;

if ($vecums >= 18) {
echo "Esi pieaugušais.";
} else {
echo "Esi nepilngadīgais.";
}
?>

if...elseif...else

Vairāki nosacījumi pēc kārtas:

<?php
$atzīme = 8;

if ($atzīme >= 9) {
echo "Izcili!";
} elseif ($atzīme >= 7) {
echo "Labi!";
} elseif ($atzīme >= 4) {
echo "Apmierinoši.";
} else {
echo "Jācenšas vairāk.";
}
?>

switch

Kad jāsalīdzina viena vērtība ar vairākām iespējām, switch ir pārskatāmāks par daudziem if:

<?php
$diena = date('l'); // pašreizējā nedēļas diena angliski

switch ($diena) {
case 'Monday':
echo "Pirmdiena — nedēļas sākums!";
break;
case 'Friday':
echo "Piektdiena — gandrīz brīvdienas!";
break;
case 'Saturday':
case 'Sunday':
echo "Brīvdiena!";
break;
default:
echo "Parasta darba diena.";
}
?>

Katru case beidz ar break, citādi tiek izpildīti arī nākamie case bloki.

match (PHP 8.0+)

match ir modernāka switch alternatīva, kas izmanto striktu salīdzināšanu un atgriež vērtību:

<?php
$statusa_kods = 404;

$ziņojums = match($statusa_kods) {
200 => 'Veiksmīgi',
301 => 'Pāradresēts',
404 => 'Nav atrasts',
500 => 'Servera kļūda',
default => 'Nezināms statuss',
};

echo $ziņojums; // Nav atrasts
?>

Nosacījumi ar HTML

PHP nosacījumus var izmantot, lai dinamiski parādītu vai slēptu HTML saturu:

<?php $ir_pierakstijies = true; ?>

<?php if ($ir_pierakstijies): ?>
<p>Sveiki! <a href="iziet.php">Iziet</a></p>
<?php else: ?>
<p><a href="ieiet.php">Pieteikties</a></p>
<?php endif; ?>

Šī alternatīvā sintakse (if...endif) ir ērtāka, strādājot ar HTML šabloniem.