logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
kodcu  
#1 Gönderildi : 12 Aralık 2016 Pazartesi 16:05:52(UTC)
kodcu

Sıralama: Advanced Member

Gruplar: Registered
Katılan: 12.12.2016(UTC)
Mesajlar: 37
Turkey

Php İşlemciler (Operatörler)

Yukarıdaki örnekleri birlikte yaptıysak, = işaretini bol bol kullandık ve böylece
PHP'nin bir çok operatöründen biriyle tanıştık. Buna PHP dilinde "atama operatörü" denir.
Bu işlemci sadece yukarıda kullandığımız gibi, bir değişkenin bir değere eşitliğini ilan
etmek amacıyla kullanılmaz. Örneğin:

Kod:

print ( $sayi = 123 ) ;


ifadesinde olduğu gibi, bir fonksiyonun içinde de hem atama işlemi yapılabilir; hem
de işlem yürütülür. PHP'nin aritmetik, birleşik-atama, birleştirme, karşılaştırma ve
mantıksal sınama operatörleri vardır.
Aritmetik işlemciler:
+ Toplama 6+5 = 11
- Çıkartma 6-5 = 1
/ Bölme 6/5 = 1.2
* Çarpma 6*5 = 30
% Kalan (Modulus) 6%5 = 1
Aritmetik işlemleri gerçek sayılarla yaptığımız gibi, tuttuğu değer sayı olan
değişkenlerle de yapabiliriz.
Daha önce, PHP'de değişken tanımlar ve bunlara değer atarken sayı olan
değişkenleri tırnak işareti kullanmadan, alfanümerik değişkenleri ise tırnak içinde
yazdığımızı hatırlayacaksınız. Bu, geleneksel hale gelmiş olan bir programcılık alışkanlığıdır.


PHP, tırnak kullanmasanız da bir değişkenin sayı olup olmadığını anlar; daha sonra bu
değişkenlerle aritmetik işlem yapabilir. PHP ayrıca rakamla başlayan alfanümerik
değişkenleri sayı olarak kullanmaya kalktığınızda, bu değerin başındaki bütün rakamları
sayı olarak kabul eder. PHP açısından harf veya işaretle başlayan alfanümerik değişkenlerin
sayı olarak değeri sıfırdır. Örnek:

Kod:

$a = 6; 
$b = "22/A" 
print ($a + $b)



sonuç olarak 28'i verecektir; veya

Kod:

$a = 6; 
$b = "A/22" 
print ($a + $b)



sonuç olarak 6 çıkacaktır. Bu küçük deneyi yaparsanız, PHP ile program yazarken
hangi değişkenin ne sonuç vermesi gerektiğini dikkatle düşünmek zorunda olduğunuzu
görürsünüz. Bir kişinin geliri ile adresini toplamak, programcı olarak arzu ettiğiniz bir işlem
olmayabilir!
Bununla birlikte elimizde bir kişinin adı ve soyadı ayrı değişkenler halinde ise,
bunları birbirine ekleyerek (concatenation) ortaya yeni bir alfanümerik değişken
çıkartabiliriz:

Kod:

<?php  
    $adi = "Reşit";  
    $soyadi = "Muhtar";  
    $adi_soyadi = $adi . " " . $soyadi;  
    print ("<br>");  
    print ($adi_soyadi);  
    print ($adi . "'nın soyadı " . $soyadi . "'dir.") 
?>



Bu örnekte, sadece ekleme yoluyla yeni bir değişken oluşturmakla kalmıyoruz;
fakat alfanümerik değişkenleri, başka metinlerle de birbirine ekleyebildiğimizi görüyoruz.
Bu işlemi nokta işaretiyle (.) yapıyoruz. Bu işlemciyle sadece değişkenlerin değerlerini
değil fakat metinleri de birbirine ekleyebiliriz:

Kod:

<?php print ("İyileri iyikleri ile alkışla; " . "..." . "ve sen soluklarında daima Mesîh ol..! ") ?> 




PHP'nin atama işlemcisinin eşittir (=) işareti olduğunu hatırlıyorsunuz birleşik
atama (combined-assignment) işlemcileri, bu işarete diğer aritmetik işlemciler eklenerek
oluşturulur.
İşlemci Örnek Anlamı
+= $a += 5 $a = $a + 5
-= $a -= 5 $a = $a - 5
/= $a /=5 $a = $a / 5
*= $a *= 5 $a = $a * 5
%= $a %= 5 $a = $a % 5
.= $a .= "metin" $a = $a" metin"
Bu işlemi zihnimizde, "A değişkeninin mevcut değerine 5 ekle, çıkan sonucu A
değişkenin yeni değeri yap!" şeklinde canlandırabiliriz.
Bir Arttırmak veya Azaltmak için
Değerleri sadece 1 arttırmak veya azaltmak için PHP, bir kolaylık sağlar:
$a++veya ++$a: $a'nın değerini 1 arttırır;
$a--veya --$a: $a'nın değerini 1 eksiltir.
++ veya -- işaretinin değişken adından önce veya sonra olmasının sonucu farklı
olur. İşaretler değişkenin adından önce ise PHP önce değişkenin değerini bir arttırır veya
eksiltir, sonra bu yeni değeri işleme katar; işaretler değişken adından sonra ise, PHP
değişkenin o andaki değerini işleme kadar, sonra değeri bir arttırır veya eksiltir.
PHP'nin karşılaştırma yapması için kullandığımız işlemciler ise işlem işaretinin sağı
ve solundaki değerleri veya değişkenlerin değerlerini işaretin belirttiği karşılaştırmayı

yaptıktan sonra ortaya ya doğru (true) ya da yanlış (false) sonucunu çıkartırlar. Söz gelimi,
değeri 6 olan değişkenin 5'ten büyük olup olmadığını sınarsak, sonuç doğru; 5'ten küçük
olup olmadığını sınarsak sonuç yanlış çıkacaktır. PHP'nin karşılaştırma işlemcileri şunlardır:
İşlemci Örnek Örnek $a=6 ise:
== eşitse $a == 5 Yanlış/False
!= eşit değilse $a != 5 Doğru/True
=== aynı ise $a === 5 Yanlış/False
> büyükse $a > 5 Doğuru/True
< küçükse $a < 5 Yanlış/False
<= küçükse $a <= 5 Yanlış/False veya eşitse
>= büyükse $a >= 5 Doğru/True veya eşitse
PHP'nin karşılaştırma işlemcileri hem tam ve ondalık sayı türü değerlerle, hem de
alfanümerik değerlerle kullanılabilir.
Daha ileri aşamalarda, bazen değişkenlerimizin karşılaştırmasının bu kadar basit
olamayacağını; kimi zaman iki grup değişkenin karşılaştırılması gerektiği durumların
bulunduğu göreceğiz. Diyelim ki, bir öğrencinin başarılı sayılması için hem vize notunun,
hem de yılsonu sınav notunun belirli sayılardan büyük olması gerekiyor. Bu durumu ancak
karmaşık-mantıksal sınamadan geçirmemiz gerekir. Bu sınamayı iki ayrı sınama sonucu ile
birlikte kullanırız. Örneğin:
vize notu yeterli - final notu yetersiz = kalır (yanlış/false)
vize notu yeterli - final notu yeterli = geçer (doğru/true)
PHP'de bu karşılaştırmayı iki grubun arasına koyduğumuz işaretlerle yaparız
İşaretin sağ ve sol tarafının doğruluğu veya yanlışığı işarete göre nihai sonucun doğru
veya yanlış olmasını sağlar. Bu karşılaştırmaları yaparken şu işlemcileri kullanırız:
İşlemci Adı Anlamı Örnek
|| veya sol veya sağ doğru doğru || yanlış = doğru

or veya sol veya sağ doğru doğru || yanlış = doğru
&& ve sol ve sağ doğru doğru || yanlış = yanlış
and ve sol ve sağ doğru doğru || yanlış = yanlış
Xor Şartlı-veya Sadece sol veya sağ doğru doğru || yanlış = doğru
! Değil sol veya sağ yanlış doğru || yanlış = doğru
"veya" ve "ve" sınamaları için iki ayrı işlem işareti bulunmasının sebebi, PHP'nin
işlem sırasıyla ilgilidir. Birazdan oraya geliyoruz. Şimdi, kavranması kolay olmayan ikili
mantıksal sınamalara bir örnek verelim; yukarıda öğrencinin durumunu PHP komutu olarak
yazalım.

Kod:

<?php  $vize = 45;  
       $final = 65;  
       if ($vize >= 50 && $final >= 50) 
       {  
           print ("Öğrenci geçti!");  
       }  else 
       {  
           print 
     ("Öğrenci kaldı!");  } 
?> 



Mantıksal karşılaştırma işlemleri daha da karmaşık olabilir. Örneğin, öğrencinin
geçmiş sayılması için yılsonu vize ve final notlarının 45'dan yüksek, ve ya birinci sömester
notunun ya da vize ve final notlarının ortalamasının 65'den yüksek olması şartı aranabilir.
(Kabul; kötü bir örnek oldu. Ama sırf alıştırma için!) Bu durumda kodu şöyle yazmamız
gerekirdi:

Kod:

<?php  
    $vize = 45;  
    $final = 65;  
    $ilk_sem = 45;   
    $ortalama = ($vize + $final) / 2;  
    if (($vize >= 45 && $final >= 45) and ($ilk_se >= 65 || $ortalama >= 65)) {  
        print ("Öğrenci geçti!");  
    }
    else {  print ("Öğrenci kaldı!");  } 
?>




Burada, PHP önce || veya && işaretinin sonucunu bulacak sonra and veya or
işlemcisinin gereğini yapaçaktır. Bu kodun vereceği sonucu, bilgisayarda çalıştırmadan
tahmin edebilir misiniz? İpucu: Bu öğrencinin yerinde olmak istemezdim!
İşlem önceliği deyince.. Bütün programlama dilleri gibi PHP için de işlemlerin hangi
sırada yapıldığı önem taşır. "5 + 4 * 2" işleminin sonucu, önce 5 ile 4'ün toplanması ve
sonucun 2 ile çarpılması halinde başka, 4'ün 2 ile çarpılması ve sonucun 5 ile toplanması
halinde başka olacaktır. Bu bakımdan, PHP'nin hangi işlemi önce yaptığı, hangi işlemi sonra
yaptığını bilmemiz gerekir. PHP'deki işlemlerin yapılış sırası şöyledir:
++ ve --
/ * %
+ -
< <= => >
== === | =
&&
||
= += -= /= %= .=
and
xor
or
r.


Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.