Kategoriler
PHP

PHP’de Koşullu İfadeler

Program içerisinde farklı mantıksal koşullar belirlemek ve belirlenen koşullarda farklı eylemler gerçekleştirmek için kullanılan yapılardır.

İf Koşul Yapıları

if

if(koşul){
    //Koşul doğru ise çalışacak kod blogu
}

if teriminden sonra açılan parantez içerisine koşul belirtilir. Koşul parantezi kapandıktan sonra açılan süslü parantezler içerisine koşulun gerçekleşmesi durumunda çalıştırılacak kodlar yazılır. Koşul gerçekleşmez ise süslü parantezler arasında kalan bölüm çalıştırılmaz.

$i = 6;
if($i > 5){
    echo "i 5'den büyüktür.";
}

Yukarıda basit bir örneğini görüyorsunuz. Koşul yazmakta kullanılan operatörlere Karşılaştırma Operatörleri deniliyor ve bu operatörleri daha önce PHP’de İşleç (Operatör) isimi yazımda bulabilirsiniz.

Koşul bölümüne yazılan ifade mantıksal (boolean) bir değer ya da eşdeğer/çarpıtım döndürmelidir.

if ve else

if koşul kısmında belirtilen koşulun gerçekleşmemesi durumunda bu koşullu ifadeye ait else kod blogu tanımlandıysa bu kod blogu içerisindeki kodlar çalıştırılır.

$i = 6;
if($i <= 5){
    echo "i değişkeni 5 ya da 5'den küçüktür.";
}else{
    echo "i değişkeni 5'den büyüktür.";
}

Yukarıdaki örnekte $i değişkeni 5’den küçük ya da eşit olmadığı için koşulun değeri false olur ve if blogu es geçilerek else blogu çalıştırılır.

Ternary (Üçlü) Operatör ile İf/Else Yazımı

Basit bir if/else yapısı kurulacağı zaman kullanılan bir yöntem daha vardır. Üçlü operatör ya da kısa if / else yapısı olarak geçer.

koşul ? koşul_doğru : koşul_yanlış;

Temel yapısı yukarıdaki gibidir. Basit bir örneği hemen aşağıda bulabilirsiniz.

$i = 2;
echo ($i % 2 == 0) ? "i çift sayıdır." : "i tek sayıdır";

if, elseif ve else

Bazı durumlarda birden fazla koşul tanımlamak isteyebiliriz. Bu durumda sıradan bir if/else yapısı arasına dilediğimiz kadar elseif ile farklı koşul durumunda çalışacak kodlamalar yapabiliriz.

$i = 2;

if($i < 1){
    echo "i değişkeni 0 yada negatif bir sayıdır.";
}elseif($i == 1){
    echo "i değişkeni 1'dir.";
}else if($i == 2){
    echo "i değişkeni 2'dir.";
}elseif($i == 3){
    echo "i değişkeni 3'dür.";
}else{
    echo "i değişkeni 3'den büyük ya da geçersizdir."
}

Yukarıdaki kodlarda görebileceğiniz gibi “elseif” birleşik ya da “else if” ayrık şekilde yazmak mümkündür. Her ikisi de çalışır. Şahsen birleşik yazım şeklinin okumayı kolaylaştırdığı kanaatindeyim.

Çoklu Koşul

Koşullu ifadeler kullanılırken if yapılarının koşul yazılan bölümünde yani parantez içerisinde bazen birden fazla koşul yazmak gerekebilir. Bu durumda koşullar mantıksal operatörler ile bir birinden ayrılarak yazılır. Mantıksal operatörler de yine PHP’de İşleç yazımda bulabilirsiniz.

$i = 2;
if($i > 0 && $i < 5){
    echo "{$i} - 0'dan büyük 5'den küçük bir sayıdır.";
}else{
    echo "{$i} - 0 ila 5 arasında bir sayı değildir.";
}

Süslü Parantezsiz (endif)

PHP’de if kod bloklarını belirtmek için süslü parantez dışında kod bloğunu açmak için : ve kod bloğunu kapatmak için endif ifadesi kullanılabilir.

if($i > 0):
	echo '"i" değişkeni sıfır ya da sıfırdan küçüktür.';
else:
	echo '"i" değişkeni sıfır ya da sıfırdan küçüktür.';
endif;

Not: Bazı PHP geliştiricileri bu yazım şeklinin daha okunabilir olduğunu savunuyor.

Switch Yapısı

Bir değer ya da değişkenin birden fazla durumu için kod blokları oluşturmak istiyorsanız if yerine switch kullanmak daha mantıklı ve hızlı olabilir.

$i = 2;

switch($i){
    case 1 : 
        echo "i değişkeni 1'dir.";
        break;
    case 2 : 
        echo "i değişkeni 2'dir.";
        break;
    default : 
        echo "i değişkeni 1 ya da 2 değildir.";
}

switch teriminden sonra parantez içinde durumu sorgulanacak değişken yazılır. Hemen ardından süslü parantezler içerisinde olası durumlarda çalışacak kodlar yazılır.

Her durum case terimi ile başlar sonrasında bir boşluk ve ardından durumu sorgulanan değişkenin değerinin ne olması durumunda ilgili kod blogunun çalıştırılacağı belirtilir. Sonrasında iki nokta üst üste ile kod blogu oluşturulmaya başlanır ve break; komutu ile kod blogu kapatılır.

Son olarak hiçbir durumun gerçekleşmemesi halinde çalıştırılacak kodlar default blogunda yazılır.

Süslü Parantezsiz (endswitch)

Switch kod bloğunu açmak ve kapatmak için süslü parantezler yerine endswitch ifadesi kullanılabilir.

switch($i):
    case 0 :
        echo '"i" değişkeni sıfırdır.';
        break;
    case $i > 0 : 
        echo '"i" değişkeni sıfırdan büyüktür.';
        break;
    default:
        echo '"i" değişkeni negatif bir sayıdır..';
endswitch;

NULL Koşul İfadesi

PHP’de bir diğer koşul ifadesi bir değerin tanımsız olup olmadığını tek satırda kontrol etmemizi sağlıyor.

$kullaniciAdi = $_POST["username"] ?? "admin";

Yukarıdaki kod örneğinde POST yöntemi ile username verisi sayfaya gönderilmediyse yani tanımsız (null) ise $kullaniciAdi değişkeni admin değerini alır. Elbette burada bir atama işlemi yapmak yerine yönlendirmek ya da bir hata fırlatmak daha uygun olacaktır.

NULL koşul ifadesi iki soru işareti ile (??) yazılır. Buna NULL operatörü de denir.

Yazar Muhammet ŞAFAK

1992 İstanbul doğumluyum. 2008 yılından beri profesyonel olarak PHP geliştiriyorum. Her ne kadar ağırlıklı olarak PHP üzerinde çalışsam da C, C++, Python, Java programlama dillerini de kullanıyorum.

Bir Cevap Yazın