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-ს გაუმჯობესებასთან.