W tej lekcji omówimy następujące metody, dzięki którym długie kody if-else będą krótsze i bardziej czytelne. Operator trójskładnikowy PHPNa przykładach dowiesz się, co to jest i jak z niego korzystać.

Operator trójskładnikowy PHP to operator warunkowy, który zmniejsza długość kodu podczas wykonywania porównań i warunków. Operator ten jest ważną alternatywą dla użycia if-elseif-else lub zagnieżdżonego if else. Nazywa się go operatorem trójskładnikowym, ponieważ wymaga trzech operandów.

  • Operator trójskładnikowy PHPOperandy, których to wymaga, są następujące:
    stan
  • wynik dla prawdy (zwraca wartość true, jeśli warunek jest prawdziwy)
  • wynik fałszywy

Operator trójskładnikowy PHP Składnia jest następująca:

$variable = (condition) ? (statement1) : (statement2);

Zamiast warunku dodawany jest warunek. Jeśli warunek instrukcji 1 zwróci wartość true, dane do dodania zostaną zapisane. Jeśli warunek instrukcji 2 zwróci wartość false, dane do dodania zostaną zapisane.

Operator trójskładnikowy PHP

W naszym pierwszym przykładzie Operator trójskładnikowy PHP”Będziemy świadkami, jak bardzo skraca to instrukcję if-else. Jeśli to prawda, chcemy nadać przyciskowi nazwę „Wyloguj”, ponieważ użytkownik jest zalogowany, a jeśli użytkownik nie jest zalogowany, chcemy nadać przyciskowi nazwę „Zaloguj”, aby użytkownik mógł się zalogować. Załóżmy, że zmienna is_user_logged_in ma wartość true, jeśli użytkownik jest zalogowany, i false, jeśli użytkownik nie jest zalogowany. W warunku if sprawdzaliśmy, czy zmienna is_user_logged_in jest prawdziwa, czy nie. Ponieważ zmienna nie była ture, kody z pierwszego warunku nie zostały wykonane i zostały przekazane do bloku else. Jak wiadomo, kody w bloku else są wykonywane, jeśli wszystkie pozostałe warunki są nieprawidłowe. W tym przypadku zostały wykonane kody z bloku else i uzyskano wynik „Zaloguj się”.

// if else ile uzun ifade
$is_user_logged_in = false;
if ($is_user_logged_in === true) {
	echo $button_name = 'Çıkış Yap';
} else {
	echo $button_name = 'Giriş Yap';
}
// Çıktı: Giriş Yap
// ternary operator ile kısa ifade
$is_user_logged_in = false;
echo $button_name = $is_user_logged_in ? 'Çıkış Yap' : 'Giriş Yap';
// Çıktı: Giriş Yap

Z tworzeniem echa PHP Operator trójskładnikowy PHPMożemy użyć. Zobaczmy to na 2 przykładach.

$number = 20;
echo ($number > 15) ? "15'ten daha büyük" : "15'ten daha büyük değil";
// Çıktı: number değişkeninin verisi 15'ten daha büyük
$number = 5;
echo ($number == 10) ? "number değişkeninin verisi 10'a eşit" : "number değişkeninin verisi 10'a eşit değil";
// Çıktı: number değişkeninin verisi 10'a eşit değil

Łańcuch operatorów trójskładnikowych w PHP (Łączenie operatorów trójskładnikowych)

W tym przykładzie Operator trójskładnikowy PHP Jest w nim nowy operator trójskładnikowy. Dlatego to wyrażenie Operator trójskładnikowy PHP Nazywamy to łączeniem operatorów trójskładnikowych.  Teraz zrozumiemy ten przykład: Załóżmy, że zmienna $is_logged_in ma wartość true, jeśli użytkownik jest zalogowany, lub false w przeciwnym razie. Zmienna $saldo to saldo użytkownika, zmienna $cena to cena produktu. Zmienna $message to wiadomość, którą pokażemy użytkownikowi. Jeśli zmienna is_logged_in w zmiennej $message ma wartość true, warunek będzie nadal wykonywany; jeżeli jest fałszywe, to do zmiennej $message zostaną przypisane dane „Najpierw zaloguj się na swoje konto, aby dokonać zakupu”. Warunek nadal działał, ponieważ zmienna $is_logged_in miała wartość true. Jako warunek w drugim operatorze trójskładnikowym zapytaliśmy, czy dane zmiennej $balance są równoważne danym zmiennej $cena. Dane zmiennej $balance wynoszą 24, dane zmiennej $cena wynoszą 30. Ponieważ nie są one równoważne, warunek nie zwrócił wartości true, zwrócił wartość false. Operator trójskładnikowy PHPPierwsze dane zostały przypisane tylko wtedy, gdy warunek zwrócił wartość true, drugie dane zostały przypisane, jeśli warunek zwrócił wartość false. Warunek zwrócił wartość false, a zmiennej $message przypisano dane „Nie masz wystarczających środków na zakup produktu”. Wydrukowaliśmy zmienną $message za pomocą echo.

$is_logged_in = true; // kullanıcı giriş yaptı mı?   
$balance = 24; // bakiye
$price = 30; // ürün fiyatı
$message = $is_logged_in
			? ($balance === $price
					? 'Ürünü satın almak için yeterli bakiyeniz var'
					: 'Ürünü satın almak için yeterli bakiyeniz yok')
			: 'Ürünü satın almak için önce hesabınıza giriş yapın';
echo $message;
// Ürünü satın almak için yeterli bakiyeniz yok