Php dilinde operatörler ve if - else if - else kullanımı
15240 0

Bir insan için adı soyadı neyse programcı için de if ve operatörler o'dur diye düşünüyorum. Çünkü program içerisinde bütün dallanmaların kararını if yapıları ile veririz. Yani if yoksa program da yok. Önce yazım şeklini göstererek, daha sonra açıklayarak devam edelim.  

İf - else if- else (Karar Yapıları)

<?php
if(/*1. Şart İfadesi*/){
    //1. Şart ifadesine bağlı yapılcaklar    
}else if(/*2. Şart İfadesi*/){
    //2. Şart ifadesine bağlı yapılcaklar
}else if(/*3. Şart İfadesi*/){
    //3. Şart ifadesine bağlı yapılcaklar
}
.
.
.
else{
    //Şartlar sağlanmazsa yapılcaklar
}
?>

Yazım şekli yukarıda olduğu gibidir. Öncelikle "if" diyerek parantez içerisinde şart belirtilir, bu şart sağlanmazsa bundan sonra istediğiniz kadar "else if" diyerek yeni şartlar belirtilebilir(Aradaki üç nokta bunu temsil etmektedir). Şart ifadesine bağlı olarak yapılacak işlemler "{}" süslü parantez içerisinde yazılacaktır. Bir istisna olarak yalnız bir işlem yapacaksanız parantez kullanmanıza gerek yoktur. Buna bir örnek yaparız. Diyelim ki tüm şartlar başarısız oldu bu durumda "else" kısmı çalışacaktır. Tabi "if" yapısı her zaman bu kadar uzun olmak zorunda değil, eğer iki ihtimalli bir şartınız varsa if-else işinizi görecektir.

Aşağıda iki sayıyı karşılaştıran php kodlarını görüyorsunuz.

<?php
$sayi1=20;
$sayi2=25;
if($sayi1>$sayi2){
    echo "1. Sayı 2. sayıdan büyük.";
}else{
    echo "2. Sayı 1. sayıdan büyük.";
}
?>

En yalın hali ile bir if-else yapısı görülmektedir. Değişkenlere ilk değerleri 20 ve 25 olarak verilip karşılaştırılıyor. Fakat bu örnekte bir problem var kodlar iki sayının eşit olma ihtimalini gözden kaçırıyor. Eğer sayılar birbirine eşit olursa sizce ne olur yani tarayıcıda ne yazar? Bunun cevabını biraz daha aşağıda vereyim ki size düşünme fırsatı doğsun. Şimdi isterseniz az önce belirttiğim sorunu giderelim. Örneğiizi şu şekilde düzenleyelim.

<?php
$sayi1=20;
$sayi2=25;
if($sayi1>$sayi2){
    echo "1. Sayı 2. sayıdan büyük.";
}else if($sayi2>$sayi1){
    echo "2. Sayı 1. sayıdan büyük.";
}else{
    echo "2 sayı birbirine eşit.";
}
?>

Şimdi kodlara bakacak olursanız çok daha doğru çalışacağını görürsünüz. Az önceki sorumuzun cevabı "2. Sayı 1. sayıdan büyük" olacaktır. Çünkü sayılar eşit olduğunda if şartı içerisinde "$sayi1>$sayi2" şartı sağlanmayacak ve else kısmı çalışacaktır. İf yapısında biraz ara verip operatörlerden bahsedeceğim çünkü if içerisinde kulanacağımız bazı operatörler var.

Operatörler

Aritmetik Operatörler

Operatör Anlamı Kullanımı Açıklama
+ Toplama $sayi1+$sayi2 Toplama işlemi için kullanılır.
- Çıkarma $sayi1-$sayi2 Çıkarma işlemi için kullanılır.
* Çarpma $sayi1*$sayi2 Çarpma işlemi için kullanılır.
/ Bölme $sayi1/$sayi2 Bölme işlemi için kullanılır.
% Mod $sayi%2 Bölümden kalanı verir.
++ 1 Arttır $sayi++ Değişkenin değerini 1 arttır. $sayi bir işlem içinde ise önce işlemi yap sonra arttır.
++ 1 Arttır ++$sayi Değişkenin değerini 1 arttır. $sayi bir işlem içinde ise önce arttır sonra işlemi yap.
-- 1 Azalt $sayi-- Değişkenin değerini 1 azalt. $sayi bir işlem içinde ise önce işlemi yap sonra azalt.
-- 1 Azalt --$sayi Değişkenin değerini 1 azalt. $sayi bir işlem içinde ise önce azalt sonra işlemi yap.

Örnek;

<?php
$sayi1=3;
$sayi2=5;

$toplam=$sayi1+$sayi2; //$toplam değişkeninin değeri 8 oldu

$toplam++; //$toplam değişkeninindeğeri 9 oldu

$hesapla=$sayi1++; //$hesapla 3, $sayi 4 oldu

$tekrarHesapla=++$sayi2; //$tekrarHesapla 6, $sayi2 6 oldu

$kalan=$sayi2%4; //$kalan 2 olur. 6/4'ten kalan 2'dir
?>

String Operatörler

Operatör Anlamı Kullanımı Açıklama
. Birleştir $ad.$soyad İki string ifadeyi birleştirmek için kullanılır.
" " String İfade $ad="Yılmaz" İçerisine string ifadeler yazılır.
' ' String İfade $ad='Yılmaz' İçerisine string ifadeler yazılır.
Kaçış Karakteri "Yılmaz"ın" String ifade içerisinde yazım kuralına aykırı karakterleri etkisiz hale getirir. ("Yılmaz"ın" bu yazım hata verir.)

Örnek; 

<?php
    $ad="Yılmaz";
    $soad='Arslantürk';
    $adSoyad=$ad." ".$soyad; //Araya boşluk bırakarak 2 stringi birleştirdik
    
    //Tek Tırnak ve Çift Tırnak Farkı
    
    echo "Adım: $ad"; //Çıktısı Adım: Yılmaz
    echo 'Adım: $ad'; //Çıktısı Adım: $ad
    
    //Kaçış Karateri
    echo 'Bu arada doğrudan ' kullanılmaz';
?>

Atama Operatörleri

Operatör Anlamı Kullanımı Açıklama
= Atama Operatörü $sayi=2 Sağdaki sayıyı $sayi değişkeni içerisine aktarır. $sayi artık 2'dir. Bu örnek üzerinden devam edelim.
+= Ekle ve Ata $sayi+=2 Değişkenin mevcut değeri üzerine 2 ekler. $sayi artık 4'tür.
-= Çıkar ve Ata $sayi-=2 Değişkenin mevcut değerinden 2 çıkarır. $sayi artık 2'dir.
*= Çarp ve Ata $sayi*=2 Değişkenin mevcut değerini 2 ile çarpıp aktarır. $sayi artık 4'tür.
/= Böl ve Ata $sayi/=2 Değişkenin mevcut değerini 2'ye bölüp aktarır. $sayi artık 2'dir.
%= Mod Al ve Ata $sayi%=2 Değişkenin mevcut değerinin 2'ye bölümünden kalanı verir. $sayi artık 0'dır.

Örnek;

<?php

$sayi=20;
$sayi+=5; //$sayi 25 oldu
$sayi/=5; //$sayi 5 oldu
$sayi%=2; //$sayi 1 oldu

echo $sayi; //Tarayıcıda 1 görünür.
?>

Karşılaştırma Operatörleri

Operatör Anlamı Kullanımı Açıklama
== Eşitse $sayi1==$sayi2 İki sayı birbirine eşitse "true" değer üretir.
=== Denkse $sayi1===$sayi2 İki değişken, içeriği ile ve değişken tipi olarak aynı ise "true" değer üretir.
!= Eşit Değilse $sayi1!=$sayi2 İki sayı eşit değilse "true" değer üretir.
< Küçükse $sayi1<$sayi2 $sayi1, $sayi2'den küçükse "true" değer üretir.
> Büyükse $sayi1>$sayi2 $sayi1, $sayi2'den büyükse "true" değer üretir.
<> Farklıysa $sayi1<>$sayi2 İki sayı eşit değilse "true" değer üretir. "!=" gibi.
<= Küçük veya Eşitse $sayi1<=$sayi2 $sayi1, $sayi2'den küçük veya eşit ise "true" değer üretir.
>= Büyük veya Eşitse $sayi1>=$sayi2 $sayi1, $sayi2'den büyük veya eşit ise "true" değer üretir.

Mantıksal Operatörler

Operatör Anlamı Kullanımı Açıklama
&& Ve $sayi1==$sayi2 && $sayi1>0 $sayi1, $sayi2'den büyükse ve $sayi1 0'dan büyükse "true" değer üretir.
and Ve $sayi1==$sayi2 and $sayi1>0 $sayi1, $sayi2'den büyükse ve $sayi1 0'dan büyükse "true" değer üretir.
|| Veya $sayi1==$sayi2 || $sayi1>0 $sayi1, $sayi2'den büyükse veya $sayi1 0'dan büyükse "true" değer üretir.
or Veya $sayi1==$sayi2 or $sayi1>0 $sayi1, $sayi2'den büyükse veya $sayi1 0'dan büyükse "true" değer üretir.
! Değil !($sayi1>$sayi2) $sayi1, $sayi2'den büyük değilse "true" değer üretir.

Karşılaştırma ve mantıksal operatörlerin kullanıldığı birkaç örnek yapalım.

Sayının tek mi çift mi olduğunu bulan kodlar;

<?php
    $sayi=5;
    if($sayi%2==0){
        echo "Sayı çift";
    }else{
        echo "Sayı tek";
    }
    //Bu kodların çıktısı "Sayı tek" olacaktır
?>

5'lik not sisteminde alınan puanın not karşılığını yazı ile veren kodlar;

<?php
    $not=68;
    
    if ($not>=0 && $not<25) {
        echo "Sıfır";}
    elseif ($not>=25 && $not<45) {
        echo "Bir";}
    elseif ($not>=45 && $not<55) {
        echo "İki";}
    elseif ($not>=55 && $not<70) {
        echo "Üç";}
    elseif ($not>=70 && $not<85) {
        echo "Dört";}
    elseif ($not>=85 && $not<100) {
        echo "Beş";}
    else{
        echo "Not değeri 0 ile 100 arasında değil!";
    }
    
    //Bu kodları yazıp çalıştırırsanız sonuç "Üç" olacaktır.
?>

Hata Bastırma Operatörü

Program içerisinde bazı kodlar hata mesajlarının görünmesine neden olur. "@" hata bastırma operatörü sayesinde bu hataları gizleyebilirsiniz. Bu kontrollü hata durumlarında işe yarar. Yani hatanın farkındasınız ve problem yok demiş olursunuz.

<?php
    $bolme=45/0; //0'a bölme hatası
    
    @$bolme=45/0; // Bu şekilde hata görüntülenmez.
?>

 

^
X