Php ile Operatörler Hakkında;
Genel olarak operatörler bir değişkendeki veriyi işlemek amacıyla kullanılır. Yani bu durumda bir değer atamak, bir değeri arttırmak ya da eksiltmek, bir kaç değeri karşılaştırmak gibi işlemleri yapan sembollere biz operatör diyoruz. Operatörlerin üzerlerinde işlem yaptığı değişkenlere ise operand diyoruz. Aşağıdaki örnek durumu tam anlamıyla açıklamaya yeterli olacaktır.
<?php
$deger1 = 2;
$deger2 = 5;
$sonuc = 1;
$sonuc = $deger1 + $deger2;
echo “$deger1 + $deger2 = $sonuc”;
?>
Burada iki adet tamsayı değişken toplanmış ve sonuc adlı yine tamsayı olan bir değişkene atanmıştır. Tüm bu toplama ve atama işlemlerini yapan “+” ya da “=” sembollerine biz operatör deriz. Üzerlerinde işlem yapılan “$deger1“, “$deger2” ya da “$sonuc” değişkenlerine de operand deriz.
Bir operatör, bir adet, iki adet ya da üç adet operand alabilir. Tekil operatöre örnek olarak “!” i gösterebiliriz. İkili operatörlere örnek olarak “+, =, -, *, /, %”, üçlü operatöre ise “? :” i örnek verebiliriz.
Operandlar ve operatörler bir sonuç üretmek üzere birlikte kullanıldığında ise biz buna ifade(expression) deriz. Yani şu durumda $deger1 = 5; bir ifadedir. Tabi buradan şu sonuç çıkarılmamalı. Her ifade bir operatör içermelidir. Bu anlayış yanlış olur. Aslına bakarsanız PHP ‘de bir kodun ifade olabilmesi için, 100 gibi bir sabit, $deger1 gibi bir değişken ya da settype() gibi bir fonksiyon olması yeterlidir.
Burada değer çözümlemesi(resolve) konusundan da bahsetmek isterim. Eğer bir ifade sonuç üretiyorsa buna bu değeri çözümlemek(resolve) denir. Yani $sonuc = $deger1 + $deger2; ifadesinde, $deger1 + $deger2; ifadesi $sonuc ‘a çözümlenmiştir diyebiliriz.
Artık genel tanımlardan sıyrılarak PHP ‘de ki operatör konusuna başlayabiliriz.
PHP ‘de beş tür operatör sınıfı var desem yalan olmaz :) Bunlar; atama operatörü, aritmetik operatörler, birleştirme operatörü, karşılaştırma operatörleri ve mantıksal operatörler. Hemen açıklamaya başlıyorum.
- Atama Operatörü
Atama operatörümüz matematikten de tanıdığımız = sembolüdür. Bu operatör sağındaki operandı solundaki operanda atar. Nasıl mı yapar ? Aslında yukarıdaki örnekte gördünüz ama ben bir daha yazayım :
$deger1 = 5;
- Aritmetik Operatörler
Bu operatörler matematikte ne yapıyorsa, programlama yaparken de aynı işlemi yapıyor emin olabilirsiniz. Bu nedenle üzerlerin de fazla durmadan örnek bir kod yazıp geçmeyi uygun görüyorum.
$sonuc = $deger1 + $deger2; // operandları toplar ve sonuc ‘a atar
$sonuc = $deger1 – $deger2; // operandları çıkartır ve sonuc ‘a atar
$sonuc = $deger1 * $deger2; // operandları çarpar ve sonuc ‘a atar
$sonuc = $deger1 / $deger2; // $deger1 ‘i $deger2 ‘ye böler ve sonuc ‘ a atar
$sonuc = $deger2 % $deger1; // $deger2 ‘nin $deger1 ‘ e bölümünde kalanı bulur ve sonuc ‘ a atar;
- Birleştirme Operatörü
İşte bu operatör diğer programlama dillerinden farklı bir işleve sahiptir. Bu operatör nokta(.) ile gösterilir ve ikili bir operatördür. Yani iki operandı vardır ve sağındaki operandı solundaki operanda ekler. Tabii ekler sözünden matematiksel olarak eklemek anlaşılmamalıdır. Buradaki ekleme dizgi bazındaki eklemedir. Örnek verecek olursak;
echo “3”.”5?;
ifadesinde, noktanın yanındaki operandlar sanki birer dizgi gibi işlem görürler ve ifade ekrana “35” sonucunu gönderir. Yani ekrana gönderilen ifade de bir dizgidir.
UYARI : Burada sırası gelmişken kombinasyonel bir atama işleminden de bahsetmem gerekli. Hem atama hem de aritmetik operatörler bir arada kullanılarak ta atama işlemi yapılabilir. Nasıl mı ? Hemen örnek vereyim:
$deger += 1; // $deger = $deger + 1 ile aynı işlemi yapar
$deger -= 1; // $deger = $deger – 1 ile aynı işlemi yapar
$deger *= 1; // $deger = $deger * 1 ile aynı işlemi yapar
$deger /= 1; // $deger = $deger / 1 ile aynı işlemi yapar
$deger %= 1; // $deger = $deger % 1 ile aynı işlemi yapar
Tabi aritmetik işlemlere ek olarak birleştirme işlemi de atama ile beraber kullanılabilir :
$deger .= “merhaba”; // $deger
= $deger. ” merhaba” ile aynı işlemi
yapar
UYARI : Tüm bunların yanı sıra bir değişkeni uzun uzadıya kodlar yazarak azaltmak ya da arttırmak yerine şu ifadeleri e kullanabilirsiniz :
$deger = $deger + 1; ya da $deger += 1;
yerine
$deger++; ya da ++$deger;
ifadesini kullanmak daha makuldür.
Ama burada dikkat edilmesi gereken husus, bir ifade içerisinde kullanırken $deger++; ya da ++$deger; ifadelerinin aynı sonucu