🔀 Nosacījumi PHP
Nosacījumu konstrukcijas ļauj programmām pieņemt lēmumus – izpildīt dažādu kodu atkarībā no apstākļiem.
if / else / elseif
<?php
$vecums = 20;
// Vienkāršs if
if ($vecums >= 18) {
echo "Pilngadīgs<br>";
}
// if / else
if ($vecums >= 18) {
echo "Pieaugušais<br>";
} else {
echo "Nepilngadīgs<br>";
}
// if / elseif / else (vairāki nosacījumi)
$atzīme = 75;
if ($atzīme >= 90) {
echo "Teicami (A)<br>";
} elseif ($atzīme >= 75) {
echo "Labi (B)<br>";
} elseif ($atzīme >= 60) {
echo "Viduvēji (C)<br>";
} elseif ($atzīme >= 45) {
echo "Gandrīz (D)<br>";
} else {
echo "Neizturēts (F)<br>";
}
// Izvada: Labi (B)
// Vienas rindas forma (bez iekavām) - NEIETEICAMS
if ($vecums >= 18) echo "Pilngadīgs<br>";
// Alternatīvā sintakse (noderīga HTML ielikšanai)
?>
<?php if ($vecums >= 18): ?>
<p>Jūs esat pilngadīgs.</p>
<?php elseif ($vecums >= 16): ?>
<p>Jūs esat gandrīz pilngadīgs.</p>
<?php else: ?>
<p>Jūs vēl esat nepilngadīgs.</p>
<?php endif; ?>
<?php
?>
<?php
$vecums = 22;
$pilsonis = true;
$sodīts = false;
// Vairāki nosacījumi ar && (AND) un || (OR)
if ($vecums >= 18 && $pilsonis && !$sodīts) {
echo "Drīkst balsot!<br>";
} else {
echo "Nedrīkst balsot.<br>";
}
// Pārbaude, vai mainīgais ir noteiktā kopā
$statuss = "aktīvs";
if (in_array($statuss, ["aktīvs", "gaida", "pārskatīts"])) {
echo "Derīgs statuss<br>";
}
// Nested (ligzdoti) if
$temperatūra = 25;
$lietus = false;
if ($temperatūra > 20) {
if (!$lietus) {
echo "Ideāls laiks pastaigai!<br>";
} else {
echo "Silts, bet lietus.<br>";
}
} else {
echo "Pārāk vēss.<br>";
}
?>
switch / case
Switch ir noderīgs, kad viens mainīgais tiek salīdzināts ar vairākām vērtībām.
<?php
$diena = "Pirmd.";
switch ($diena) {
case "Pirmd.":
echo "Nedēļas sākums 😴<br>";
break; // break nepieciešams, lai pārtrauktu izpildi
case "Pirkt.":
echo "Nedēļas beigas tuvojas! 🎉<br>";
break;
case "Sestd.":
case "Svētd.": // Vairāki gadījumi vienam kodam
echo "Brīvdiena! 🎈<br>";
break;
default: // Ja nekas neatbilst
echo "Parastadiena.<br>";
}
// switch izmanto "vaļīgo" salīdzinājumu (==), nevis ===
// Tāpēc PHP 8+ ieteicams izmantot match
// switch ar integers
$mēnesis = 3;
switch ($mēnesis) {
case 1: case 2: case 3:
echo "Pavasaris<br>"; break;
case 4: case 5: case 6:
echo "Vasara<br>"; break;
case 7: case 8: case 9:
echo "Rudens<br>"; break;
default:
echo "Ziema<br>";
}
?>
match izteiksme (PHP 8+)
match ir modernāks switch alternatīva ar stingro salīdzinājumu (===) un kā izteiksme (var atgriezt vērtību).
✅ IeteikumsIzmanto match PHP 8+ projektiem – tas ir drošāks un kompaktāks nekā switch. switch izmanto tikai, ja vajadzīgs saderīgums ar vecāku PHP vai sarežģītu loģiku.
<?php
$statuss = 2;
// match atgriež vērtību
$teksts = match($statuss) {
0 => "Neaktīvs",
1 => "Aktīvs",
2 => "Gaida",
3, 4 => "Pārskata", // Vairākas vērtības
default => "Nezināms"
};
echo $teksts . "<br>"; // Gaida
// match ar nosacījumiem (PHP 8.1+)
$vecums = 25;
$kategorija = match(true) {
$vecums < 13 => "Bērns",
$vecums < 18 => "Pusaudzis",
$vecums < 65 => "Pieaugušais",
default => "Seniors"
};
echo $kategorija . "<br>"; // Pieaugušais
// Atšķirības no switch:
// 1. match izmanto === (stingro salīdzināšanu)
// 2. match ir izteiksme (atgriež vērtību)
// 3. match nav nepieciešams break
// 4. match kļūdas gadījumā met UnhandledMatchError
// (switch ar default bez vērtības atgriež null)
$skaitlis = "1"; // String!
// switch - atradīs case 1 (vaļīgs salīdzinājums)
// match - kļūda! Nav case "1" (stingrs salīdzinājums)
?>
Ternārais operators un īsā forma
🎓 Ko mācīties tālāk?
Nākamajā sadaļā uzzināsiet par cilpām PHP – kā atkārtoti izpildīt kodu.
<?php $vecums = 20; // Ternārais operators $statuss = $vecums >= 18 ? "Pieaugušais" : "Nepilngadīgs"; echo $statuss . "<br>"; // Pieaugušais // Null coalescing (??) $lietotājs = $_GET["vards"] ?? "Anonīms"; echo "Sveicināts, $lietotājs!<br>"; // Ķēdēts null coalescing $a = null; $b = null; $c = "Vērtība"; echo $a ?? $b ?? $c . "<br>"; // Vērtība // Piešķiršana ar null coalescing (??=) $opcija = null; $opcija ??= "Noklusējums"; echo $opcija . "<br>"; // Noklusējums // Praktisks piemērs - formu apstrāde $vards = isset($_POST["vards"]) ? htmlspecialchars($_POST["vards"]) : ""; // Vai modernāk: $vards = htmlspecialchars($_POST["vards"] ?? ""); echo "Vārds: $vards<br>"; ?>