V této lekci probereme následující metody používané k tomu, aby byly dlouhé kódy if-else kratší a čitelnější. PHP ternární operátorNa příkladech se dozvíte, co to je a jak to používat.

PHP ternární operátor je podmíněný operátor, který snižuje délku kódu při provádění porovnávání a podmínek. Tento operátor je důležitou alternativou k použití if-elseif-else nebo vnořených if else. Říká se mu ternární operátor, protože vyžaduje tři operandy.

  • PHP ternární operátorOperandy, které potřebuje, jsou následující:
    stavu
  • výsledek pro true (vrátí hodnotu true, pokud je podmínka pravdivá)
  • výsledek za nepravdu

PHP ternární operátor Syntaxe je následující:

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

Místo podmínky je přidána podmínka. Pokud podmínka pro příkaz1 vrátí hodnotu true, zapíší se data, která mají být přidána. Pokud podmínka pro příkaz2 vrátí hodnotu false, zapíší se data, která mají být přidána.

PHP ternární operátor

V našem prvním příkladu PHP ternární operátorBudeme svědky toho, jak moc to zkrátí výrok if-else. Pokud je true, chceme nastavit název tlačítka „Log Out“, protože uživatel je přihlášen, a pokud uživatel není přihlášen, chceme nastavit název tlačítka „Log In“, aby se uživatel mohl přihlásit. Předpokládejme, že proměnná is_user_logged_in má hodnotu true, pokud je uživatel přihlášen, a false, pokud uživatel není přihlášen. Protože proměnná nebyla ture, kódy v první podmínce nebyly provedeny a byly předány do bloku else. Jak víte, kódy v bloku else se provedou, pokud jsou všechny ostatní podmínky neplatné. V tomto případě byly provedeny kódy v bloku else a byl poskytnut výstup "Přihlášení".

// 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

S tvorbou ozvěny PHP PHP ternární operátorMůžeme použít . Podívejme se na to na 2 příkladech.

$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

PHP řetězení ternárních operátorů (řetězení ternárních operátorů)

V tomto příkladu PHP ternární operátor Je v něm nový ternární operátor. Proto ten výraz PHP ternární operátor Říkáme tomu řetězení ternárních operátorů.  Nyní pochopme tento příklad: Předpokládejme, že proměnná $is_logged_in má hodnotu true, pokud je uživatel přihlášen, a hodnotu false jinak. $bilance variable je zůstatek uživatele, $price variable je cena produktu. Proměnná $message je zpráva, kterou zobrazíme uživateli. Pokud je proměnná is_logged_in v proměnné $message pravdivá, podmínka bude pokračovat; pokud je nepravda, k proměnné $message se přiřadí údaj „Nejprve se přihlaste ke svému účtu, abyste si produkt zakoupili“. Podmínka pokračovala v běhu, protože proměnná $is_logged_in byla pravdivá. Jako podmínku ve druhém ternárním operátoru jsme se zeptali, zda jsou data proměnné $bilance ekvivalentní datům proměnné $price. Údaj proměnné $bilance je 24, údaj proměnné $cena je 30. Jelikož nejsou ekvivalentní, podmínka nevrátila true, vrátila false. PHP ternární operátorPrvní údaj byl přiřazen pouze v případě, že podmínka vrátila hodnotu true, druhý údaj byl přiřazen, pokud podmínka vrátila hodnotu nepravda. Podmínka se vrátila jako false a proměnné $message byl přiřazen údaj "Nemáte dostatek prostředků na nákup produktu." Vytiskli jsme proměnnou $message s echem.

$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