PHP if–else Yapısı

PHP'de koşullu ifadeler ve if–else yapısını örneklerle öğrenin.

PHP'de koşullu ifadeler (conditional statements), kodunuzun belirli koşullara bağlı olarak farklı davranışlar sergilemesini sağlayan temel programlama yapılarıdır. Bu ifadeler, programınızın akışını kontrol etmenize ve "eğer bu koşul doğruysa şunu yap, değilse bunu yap" gibi kararlar vermesine olanak tanır. İşte PHP'deki başlıca koşullu ifade türleri: --- ### 1. `if` İfadesi `if` ifadesi, belirtilen bir koşulun `true` (doğru) olması durumunda belirli bir kod bloğunu çalıştırır. **Genel Yapı:** ```php if (koşul) { // Koşul doğruysa çalışacak kod } ``` **Örnek:** ```php $yas = 20; if ($yas >= 18) { echo "Ehliyet alabilirsiniz."; } // Çıktı: Ehliyet alabilirsiniz. ``` --- ### 2. `if...else` İfadesi `if...else` ifadesi, koşul `true` ise bir kod bloğunu, `false` (yanlış) ise başka bir kod bloğunu çalıştırmak için kullanılır. **Genel Yapı:** ```php if (koşul) { // Koşul doğruysa çalışacak kod } else { // Koşul yanlışsa çalışacak kod } ``` **Örnek:** ```php $havaDurumu = "yağmurlu"; if ($havaDurumu == "güneşli") { echo "Dışarıya çıkıp piknik yapabiliriz."; } else { echo "Evde kalıp film izleyelim."; } // Çıktı: Evde kalıp film izleyelim. ``` --- ### 3. `if...elseif...else` İfadesi Birden fazla farklı koşulu kontrol etmek gerektiğinde `if...elseif...else` yapısı kullanılır. Koşullar sırasıyla kontrol edilir ve ilk doğru olan koşulun kodu çalıştırılır. Eğer hiçbir koşul doğru değilse, `else` bloğu çalışır. **Genel Yapı:** ```php if (koşul1) { // Koşul1 doğruysa çalışacak kod } elseif (koşul2) { // Koşul1 yanlış ama Koşul2 doğruysa çalışacak kod } elseif (koşul3) { // Koşul1 ve Koşul2 yanlış ama Koşul3 doğruysa çalışacak kod } else { // Yukarıdaki koşulların hiçbiri doğru değilse çalışacak kod } ``` **Örnek:** ```php $puan = 85; if ($puan >= 90) { echo "Notunuz: A"; } elseif ($puan >= 80) { echo "Notunuz: B"; } elseif ($puan >= 70) { echo "Notunuz: C"; } else { echo "Notunuz: D veya F"; } // Çıktı: Notunuz: B ``` --- ### 4. `switch` İfadesi `switch` ifadesi, tek bir değişkenin veya ifadenin farklı olası değerlerine göre farklı kod bloklarını çalıştırmak için kullanılır. Genellikle birden fazla `if...elseif` kontrolü yerine, belirli bir değişkenin alabileceği diskret değerler için daha okunabilir bir alternatif sunar. **Genel Yapı:** ```php switch (değişken_veya_ifade) { case değer1: // değişken_veya_ifade değer1'e eşitse çalışacak kod break; case değer2: // değişken_veya_ifade değer2'ye eşitse çalışacak kod break; // ...daha fazla case default: // Hiçbir case eşleşmezse çalışacak kod } ``` * `break`: Her `case` bloğunun sonunda kullanılması önemlidir. Aksi takdirde, eşleşen `case`'den sonraki `case`'ler de koşulsuz olarak çalıştırılır (fall-through davranışı). * `default`: İsteğe bağlıdır. Hiçbir `case` koşulunun eşleşmemesi durumunda çalışacak kodu tanımlar. **Örnek:** ```php $gun = "Salı"; switch ($gun) { case "Pazartesi": echo "Haftanın ilk günü."; break; case "Salı": case "Çarşamba": // Birden fazla case aynı kodu çalıştırabilir echo "Hafta ortasına doğru ilerliyoruz."; break; case "Cuma": echo "Hafta sonuna doğru!"; break; default: echo "Belirtilen gün geçersiz."; } // Çıktı: Hafta ortasına doğru ilerliyoruz. ``` --- ### 5. Ternary (Üçlü) Operatör (`? :`) Ternary operatör, kısa ve tek satırlık koşullu atamalar veya dönüşler için kullanılan kompakt bir yoldur. Esasen basit bir `if...else` ifadesinin kısaltılmış halidir. **Genel Yapı:** ```php (koşul) ? doğru_değer : yanlış_değer; ``` **Örnek:** ```php $stokDurumu = 5; $mesaj = ($stokDurumu > 0) ? "Ürün stokta." : "Ürün stokta yok."; echo $mesaj; // Çıktı: Ürün stokta. $yas = 16; $ehliyetDurumu = ($yas >= 18) ? "Ehliyet alabilir" : "Ehliyet alamaz"; echo $ehliyetDurumu; // Çıktı: Ehliyet alamaz ``` --- ### Önemli Notlar ve En İyi Uygulamalar: * **Karşılaştırma Operatörleri:** Koşullarınızı oluştururken `==` (eşit mi), `!=` (eşit değil mi), `>` (büyük mü), `<` (küçük mü), `>=` (büyük veya eşit mi), `<=` (küçük veya eşit mi) gibi operatörleri kullanırsınız. * **Katı Karşılaştırma (`===` ve `!==`):** `==` sadece değerleri karşılaştırırken, `===` hem değeri hem de veri tipini karşılaştırır. Benzer şekilde `!=` sadece değerleri karşılaştırırken, `!==` hem değeri hem de veri tipini karşılaştırır. Güvenlik ve hata önleme açısından genellikle `===` ve `!==` kullanmak daha iyidir. * **Mantıksal Operatörler:** Birden fazla koşulu birleştirmek için `&&` (AND - her iki koşul da doğruysa), `||` (OR - koşullardan en az biri doğruysa) ve `!` (NOT - koşulun tersi) gibi mantıksal operatörleri kullanabilirsiniz. ```php if ($yas >= 18 && $ehliyetVar == true) { echo "Araç kullanabilir."; } ``` * **Okunabilirlik:** Kodunuzu düzenli tutmak için girintilemeye (indentation) dikkat edin. Bu, özellikle iç içe geçmiş (nested) koşullu ifadelerde kodun okunabilirliğini büyük ölçüde artırır. * **Kısa Devre (Short-circuiting):** Mantıksal operatörler bazen "kısa devre" yapar. Örneğin, `koşul1 && koşul2` ifadesinde `koşul1` yanlışsa, `koşul2` asla değerlendirilmez çünkü sonuç zaten `false` olacaktır. Bu performans optimizasyonu sağlar. Koşullu ifadeler, PHP kodunuzun dinamik, esnek ve akıllı olmasını sağlayan temel taşlardır. Hangi koşullu ifadeyi kullanacağınız, ihtiyaç duyduğunuz karar verme mekanizmasının karmaşıklığına ve okunabilirlik tercihlerinize bağlıdır.
Son Paylaşımlar
Kategoriler