Bu dərsdə uzun if-else kodlarını daha qısa və daha oxunaqlı etmək üçün istifadə olunan aşağıdakı üsulları müzakirə edəcəyik. PHP üçlü operatoruNə olduğunu və necə istifadə edəcəyinizi nümunələrlə öyrənəcəksiniz.

PHP üçlü operatoru müqayisə və şərtləri yerinə yetirərkən kodun uzunluğunu azaldan şərti operatordur. Bu operator if-elseif-else və ya nested if else istifadə etmək üçün mühüm alternativdir. Üç operand götürdüyü üçün üçlü operator adlanır.

  • PHP üçlü operatoruAldığı operandlar aşağıdakılardır:
    vəziyyət
  • doğru üçün nəticə (şərt doğrudursa doğrunu qaytarır)
  • yalan üçün nəticə

PHP üçlü operatoru Sintaksis aşağıdakı kimidir:

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

Şərt əvəzinə şərt əlavə olunur. İfadə1 üçün şərt doğrudursa, əlavə ediləcək məlumatlar yazılır. İfadə2 şərti yalnış qaytarırsa, əlavə olunacaq məlumat yazılır.

PHP üçlü operatoru

İlk nümunəmizdə PHP Üçlü Operator'if-else ifadəsini nə qədər qısaltdığına şahid olacağıq. Əgər doğrudursa, istifadəçi daxil olduğu üçün düymənin adını "Çıxış" etmək istəyirik və istifadəçi daxil deyilsə, düymənin adını "Log In" etmək istəyirik ki, istifadəçi daxil ola bilsin. Tutaq ki, is_user_logged_in dəyişəninə istifadəçi daxil olubsa true, əgər istifadəçi daxil olub-olmaması şərti ilə false verilir. is_user_logged_in dəyişəni doğrudur ya yox. Dəyişən ture olmadığı üçün birinci şərtdəki kodlar yerinə yetirilmədi və else blokuna keçdi. Bildiyiniz kimi, else blokundakı kodlar bütün digər şərtlər etibarsız olduqda yerinə yetirilir. Bu halda else blokundakı kodlar yerinə yetirildi və "Giriş" çıxışı təmin edildi.

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

PHP echo formalaşması ilə PHP üçlü operatoruistifadə edə bilərik. Buna 2 misalla baxaq.

$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 Üçlü Operator Zənciri (Zəncirvari Üçlük Operatorlar)

Bu misalda PHP üçlü operatoru İçində yeni üçlü operator var. Ona görə də bu ifadə PHP üçlü operatoru Biz bunu zəncirləmə üçlü operatorlar adlandırırıq.  İndi bu nümunəni anlayaq: Tutaq ki, $is_logged_in dəyişəninə istifadəçi daxil olduqda true, əks halda isə false qiyməti verilir. $balance dəyişəni istifadəçinin balansıdır, $qiymət dəyişəni məhsulun qiymətidir. $message dəyişəni istifadəçiyə göstərəcəyimiz mesajdır. Əgər $message dəyişənindəki is_logged_in dəyişəni doğrudursa, şərt işləməyə davam edəcək; yalan olarsa, "Məhsul almaq üçün əvvəlcə hesabınıza daxil olun" məlumatları $message dəyişəninə təyin ediləcək. Şərt işləməyə davam etdi, çünki $is_logged_in dəyişəni doğru idi. İkinci üçlü operatorda şərt olaraq, $balance dəyişəninin məlumatlarının $qiymət dəyişəninin məlumatlarına ekvivalent olub olmadığını soruşduq. $balance dəyişəninin məlumatı 24, $qiymət dəyişəninin verilənləri 30-dur. Onlar ekvivalent olmadığı üçün şərt doğru deyil, yalan qaytardı. PHP üçlü operatoruBirinci verilənlər yalnız şərt doğru olduqda, ikinci məlumatlar isə şərt yanlış olduqda təyin edilir. Şərt yanlış çıxdı və $message dəyişəninə "Məhsul almaq üçün kifayət qədər vəsaitiniz yoxdur" məlumatı təyin edildi. Biz echo ilə $message dəyişənini çap etdik.

$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