PHP Dilinde Operatörler Kullanımı
PHP, programlama dillerinin temel yapı taşlarından biri olan operatörler aracılığıyla değişkenler ve değerler üzerinde çeşitli işlemler yapmayı sağlar. Operatörler, matematiksel hesaplamalardan mantıksal karşılaştırmalara, değer atamalarından veri manipülasyonlarına kadar geniş bir yelpazede görev alarak kodun işlevselliğini ve dinamizmini artırır. Bu kılavuz, PHP dilindeki farklı operatör türlerini, bunların sözdizimini ve pratik kullanım örneklerini adım adım açıklamaktadır.
Sözdizimi
PHP'deki operatörlerin sözdizimi, operatörün türüne ve aldığı işlenen (operand) sayısına göre değişiklik gösterir. Genellikle bir operatör, bir veya daha fazla değer (işlenen) üzerinde belirli bir işlemi gerçekleştirir ve bir sonuç üretir. Genel yapı aşağıdaki gibidir:
Tekli (Unary) Operatörler: Tek bir işlenen üzerinde işlem yaparlar. Örnek: `
$a++` (arttırma), `!$b` (mantıksal değil).İkili (Binary) Operatörler: İki işlenen üzerinde işlem yaparlar. Örnek: `
$a + $b` (toplama), `$x == $y` (eşitlik karşılaştırması).Üçlü (Ternary) Operatörler: Üç işlenen üzerinde işlem yaparlar. PHP'de koşullu operatör (ternary operator) bu kategoriye girer. Örnek: `
$koşul ? $değer1 : $değer2`.
Operatörler, işlenenlerin arasına veya bir işlenenin önüne/arkasına yerleştirilerek kullanılır.
Detaylı Açıklama
PHP, çeşitli işlem türleri için farklı operatör kategorileri sunar:
Aritmetik Operatörler
Matematiksel işlemler için kullanılırlar.
+(Toplama): İki sayıyı toplar. Örnek: `$a + $b`.-(Çıkarma): Bir sayıdan diğerini çıkarır. Örnek: `$a - $b`.*(Çarpma): İki sayıyı çarpar. Örnek: `$a * $b`./(Bölme): Bir sayıyı diğerine böler. Örnek: `$a / $b`.%(Modülüs): Bölme işleminden kalanı verir. Örnek: `$a % $b`.**(Üs Alma): Bir sayının kuvvetini hesaplar. Örnek: `$a ** $b` ($a üzeri $b).
Atama Operatörleri
Sağdaki işlenenin değerini soldaki işlenene atamak için kullanılırlar.
=(Atama): Sağdaki değeri soldaki değişkene atar. Örnek: `$a = 10;`.+=(Topla ve Ata): `$a = $a + $b;` ile aynıdır. Örnek: `$a += $b;`.-=(Çıkar ve Ata): `$a = $a - $b;` ile aynıdır. Örnek: `$a -= $b;`.*=(Çarp ve Ata): `$a = $a * $b;` ile aynıdır. Örnek: `$a *= $b;`./=(Böl ve Ata): `$a = $a / $b;` ile aynıdır. Örnek: `$a /= $b;`.%=(Modülüs ve Ata): `$a = $a % $b;` ile aynıdır. Örnek: `$a %= $b;`.**=(Üs Al ve Ata): `$a = $a ** $b;` ile aynıdır. Örnek: `$a **= $b;`..=(Birleştir ve Ata - Stringler için): `$a = $a . $b;` ile aynıdır. Örnek: `$a .= $b;`.
Karşılaştırma Operatörleri
İki değeri karşılaştırır ve true veya false döndürürler.
==(Eşitlik): İki değerin eşit olup olmadığını kontrol eder (veri türüne bakılmaksızın). Örnek: `$a == $b`.===(Özdeşlik): İki değerin eşit ve aynı veri türünde olup olmadığını kontrol eder. Örnek: `$a === $b`.!=veya<>(Eşit Değil): İki değerin eşit olup olmadığını kontrol eder. Örnek: `$a != $b`.!==(Özdeş Değil): İki değerin eşit veya aynı veri türünde olmadığını kontrol eder. Örnek: `$a !== $b`.<(Küçüktür): Soldaki değerin sağdaki değerden küçük olup olmadığını kontrol eder. Örnek: `$a < $b`.>(Büyüktür): Soldaki değerin sağdaki değerden büyük olup olmadığını kontrol eder. Örnek: `$a > $b`.<=(Küçük Eşit): Soldaki değerin sağdaki değerden küçük veya eşit olup olmadığını kontrol eder. Örnek: `$a <= $b`.>=(Büyük Eşit): Soldaki değerin sağdaki değerden büyük veya eşit olup olmadığını kontrol eder. Örnek: `$a >= $b`.<=>(Spaceship Operatörü): PHP 7'den itibaren mevcuttur. İki ifadeyi karşılaştırır. Soldaki değer küçükse -1, eşitse 0, büyükse 1 döndürür. Örnek: `$a <=> $b`.
Mantıksal Operatörler
Koşulları birleştirmek veya tersine çevirmek için kullanılırlar.
&&veyaand(VE): Her iki koşul da doğruysatruedöndürür. Örnek: `$a > 0 && $b < 10`.||veyaor(VEYA): Koşullardan en az biri doğruysatruedöndürür. Örnek: `$a == 5 || $b == 7`.!(DEĞİL): Koşulun tersini döndürür. Örnek: `!$koşul`.xor(Özel VEYA): Koşullardan sadece biri doğruysatruedöndürür. Her ikisi de doğru veya her ikisi de yanlış isefalsedöndürür.
Arttırma/Azaltma Operatörleri
Sayısal değişkenlerin değerini bir artırmak veya bir azaltmak için kullanılırlar.
++$a(Ön Arttırma): Değeri bir artırır, sonra değişkenin yeni değerini döndürür.$a++(Son Arttırma): Değişkenin orijinal değerini döndürür, sonra değeri bir artırır.--$a(Ön Azaltma): Değeri bir azaltır, sonra değişkenin yeni değerini döndürür.$a--(Son Azaltma): Değişkenin orijinal değerini döndürür, sonra değeri bir azaltır.
String Operatörleri
Stringleri birleştirmek için kullanılırlar.
.(Birleştirme): İki stringi birleştirir. Örnek: `"Merhaba" . " Dünya"`..=(Birleştir ve Ata): Bir stringi diğerine ekler ve sonucu değişkene atar. Örnek: `$metin .= " yeni parça";`.
Dizi Operatörleri
Dizileri karşılaştırmak veya birleştirmek için kullanılırlar.
+(Birleşim): Sağdaki diziyi soldaki diziye ekler. Aynı anahtarlar varsa soldaki dizinin değeri korunur. Örnek: `$dizi1 + $dizi2`.==(Eşitlik): Anahtar/değer çiftleri aynıysatruedöndürür.===(Özdeşlik): Anahtar/değer çiftleri aynıysa ve aynı sırada ve aynı veri türündeysetruedöndürür.
Koşullu (Ternary) Operatör
Basit bir if-else yapısını tek bir satırda ifade etmenin kısa yoludur.
(koşul) ? (doğru ise) : (yanlış ise): Koşul doğruysa ilk ifadeyi, yanlışsa ikinci ifadeyi döndürür. Örnek: `$durum = ($yas >= 18) ? "Yetişkin" : "Çocuk";`.
Null Coalescing Operatörü
PHP 7'den itibaren mevcuttur. Bir değişkenin tanımlı ve null olmayan bir değere sahip olup olmadığını kontrol etmek için kullanılır.
??: Sol taraftaki işlenen varsa veNULLdeğilse onu döndürür; aksi takdirde sağ taraftaki işleneni döndürür. Örnek: `$kullaniciAdi = $_GET['kullanici'] ?? 'Misafir';`.
Örnekler
Aşağıdaki örnekler, farklı operatör türlerinin PHP içindeki pratik uygulamalarını göstermektedir.
Aritmetik ve Atama Operatörleri Örneği";
echo "Başlangıç Değerleri: \$sayi1 = " . $sayi1 . ", \$sayi2 = " . $sayi2 . "
";
$toplam = $sayi1 + $sayi2; // Toplama
echo "Toplama (\$sayi1 + \$sayi2): " . $toplam . "
";
$fark = $sayi1 - $sayi2; // Çıkarma
echo "Çıkarma (\$sayi1 - \$sayi2): " . $fark . "
";
$carpim = $sayi1 * $sayi2; // Çarpma
echo "Çarpma (\$sayi1 * \$sayi2): " . $carpim . "
";
$bolum = $sayi1 / $sayi2; // Bölme
echo "Bölme (\$sayi1 / \$sayi2): " . $bolum . "
";
$mod = $sayi1 % $sayi2; // Modülüs
echo "Modülüs (\$sayi1 % \$sayi2): " . $mod . "
";
$kuvvet = $sayi1 ** 2; // Üs alma (20^2)
echo "Üs Alma (\$sayi1 ** 2): " . $kuvvet . "
";
$sayi1 += 10; // \$sayi1 = \$sayi1 + 10;
echo "Topla ve Ata (\$sayi1 += 10): " . $sayi1 . "
";
echo "
";
// Örnek 2: Karşılaştırma ve Mantıksal Operatörler
$yas = 25;
$ehliyetVar = true;
echo "Karşılaştırma ve Mantıksal Operatörler Örneği
";
echo "Değerler: \$yas = " . $yas . ", \$ehliyetVar = " . ($ehliyetVar ? "true" : "false") . "
";
if ($yas >= 18 && $ehliyetVar) { // Mantıksal VE
    echo "Ehliyet alabilir ve araba kullanabilir.
";
} else {
    echo "Ehliyet alamaz veya araba kullanamaz.
";
}
$puan = 85;
if ($puan > 90 || $puan == 85) { // Mantıksal VEYA
    echo "Tebrikler, yüksek puan aldınız!
";
} else {
    echo "Daha fazla çalışmanız gerekiyor.
";
}
$aktif = false;
if (!$aktif) { // Mantıksal DEĞİL
    echo "Kullanıcı pasif durumda.
";
}
echo "
";
// Örnek 3: Arttırma/Azaltma Operatörleri
$sayac = 10;
echo "Arttırma/Azaltma Operatörleri Örneği
";
echo "Başlangıç Değeri: \$sayac = " . $sayac . "
";
echo "Ön Arttırma (++\$sayac): " . (++$sayac) . ", \$sayac'ın yeni değeri: " . $sayac . "
"; // 11, 11
echo "Son Arttırma (\$sayac++): " . ($sayac++) . ", \$sayac'ın yeni değeri: " . $sayac . "
"; // 11, 12
echo "Ön Azaltma (--\$sayac): " . (--$sayac) . ", \$sayac'ın yeni değeri: " . $sayac . "
"; // 11, 11
echo "Son Azaltma (\$sayac--): " . ($sayac--) . ", \$sayac'ın yeni değeri: " . $sayac . "
"; // 11, 10
echo "
";
// Örnek 4: String ve Koşullu Operatörler
$ad = "Ahmet";
$soyad = "Yılmaz";
$tamAd = $ad . " " . $soyad; // String birleştirme
echo "String ve Koşullu Operatörler Örneği
";
echo "Tam Ad: " . $tamAd . "
";
$mesaj = "Hoşgeldin ";
$mesaj .= $ad; // String birleştir ve ata
echo "Mesaj: " . $mesaj . "
";
$kullaniciDurumu = ($yas >= 18) ? "Yetişkin" : "Çocuk"; // Koşullu operatör
echo "Kullanıcı Durumu: " . $kullaniciDurumu . "
";
echo "
";
// Örnek 5: Null Coalescing Operatörü
// $_GET['kullanici'] tanımlı değilse 'Misafir' kullan
$kullaniciAdi = $_GET['kullanici'] ?? 'Misafir';
echo "Null Coalescing Operatörü Örneği
";
echo "Kullanıcı Adı (varsayılan değer ile): " . $kullaniciAdi . "
";
// Diyelim ki $_GET['kullanici'] 'Can' olarak ayarlandı
$_GET['kullanici'] = 'Can';
$kullaniciAdi2 = $_GET['kullanici'] ?? 'Misafir';
echo "Kullanıcı Adı (belirlenmiş değer ile): " . $kullaniciAdi2 . "
";
?>Önemli Notlar
Operatör Önceliği: Farklı operatörlerin farklı öncelik seviyeleri vardır. Matematikteki işlem sırası gibi, PHP de belirli operatörleri diğerlerinden önce yürütür (örn. çarpma ve bölme toplamadan önce). Karmaşık ifadelerde belirsizliği önlemek için parantez
()kullanmak iyi bir uygulamadır.Veri Tipi Juggling: PHP, zayıf tipli bir dil olduğu için karşılaştırma veya aritmetik işlemlerde farklı veri tiplerini otomatik olarak dönüştürmeye çalışabilir. Bu, bazen beklenmedik sonuçlara yol açabilir. Kesin tip karşılaştırması için
===(özdeşlik) ve!==(özdeş değil) operatörlerini tercih edin.Kısa Devre Değerlendirme (Short-Circuit Evaluation): Mantıksal operatörler (
&&,||) kısa devre değerlendirme yapar. Örneğin,$koşul1 && $koşul2ifadesinde,$koşul1yanlışsa,$koşul2asla değerlendirilmez çünkü sonuç zatenfalseolacaktır. Bu durum, performans ve hata önleme açısından önemlidir.Aynı Anda Hem Okuma Hem Yazma: Arttırma/azaltma operatörlerini (
++,--) kullanırken, özellikle karmaşık ifadelerde veya bir değişkene aynı anda hem atama hem de işlem yaparken dikkatli olun. Ön ve son arttırma/azaltma arasındaki farkı anlamak önemlidir.Bölme Sıfıra: Bir sayıyı sıfıra bölmek (
$a / 0) bir uyarıya (Warning) neden olur ve sonuç olarakINF(sonsuz) veyaNAN(sayı değil) döndürebilir. Uygulamalarınızda sıfıra bölme durumlarını kontrol etmeniz önerilir.
        
                
            
            
Yorum yap
Yorumlar