Php Mantıksal Operatörler

php

Merhaba ben Akif Biçek sizlerle birlikte php de sıfırdan ileri düzey makelelerimizin dokuzuncusuna başlamış bulunuyoruz. Bir önceki php karşılaştırma operatörleri makalemizi okuduysanız sizlerle birlikte php mantıksal operatörler yazımız ile başlıyoruz.

Php Mantıksal Operatörler

Php mantıksal operatörler genel olarak koşul ifadelerinde birden fazla koşul olduğu durumda kullanılır.

Başlıca php mantıksal operatörlerimiz şunlardır;

  1. && – and (ve).
  2. || – or (veya-yada).
  3. ! (değilse).

Bütün örneklerimizde if koşul ifadesi bloğunu kullanacağız bu makalemizde if ifadesinin parantezlerinin arası boolean olarak true değer gelince parantezler arasındaki kodların çalışır olduğunu bilmeniz yeterli.

<?php 
if(HERHANGİ BİR KOŞUL İFADESİ)//Bu iki parantez arası true olarak dönerse;
{ 
//Burada Yazılı olan kodlar çalışır.
}
//false olarak dönerse parantezlerin arası atlanır çalışmaz.
?>
<?php 
$a = 11;
$b = 11;
if($a == $b){ 
   echo "Parantezler arası çalıştı";
}
?>

İf ifadesinin işleyişinide anladıysanız vakit kaybetmeden hemen bu ifadelerimizi örneklerimizde kullanalım.

Php Ve (and-&&) Operatörü

Php de ve operatörü iki yada daha fazla koşulun true döndürmesiyle geçerli olan ifadeleri işlemesi için kullanılır. Örnekler üzerinden anlatalım.

<?php
$a = 25;
$b = 25;
$c = "akif";
$d = "akif"; 
if($a == $b and $c == $d){
   echo "Girilen İki Koşulda Eşittir";
}
?>
Girilen İki Koşulda Eşittir

Yukarıdaki kodu anlatmadan önce sizlere bir önerimi söylemek istiyorum. Gerçek projelerde bu işlemleri belki yüzlerce kez kullanacağız yada bazen if parantezleri arasında birden fazla koşul yazacaz. İşte tamda burda hem kodların daha iyi çalışması için hemde işlem önceliğinin belirlenmesi için her koşulu parantez arasına alarak çalışmanızı öneririm. Yani şu şekilde;

<?php
$a = 25;
$b = 25;
$c = "akif";
$d = "akif"; 
if(($a == $b) and ($c == $d)){
   echo "Girilen İki Koşulda Eşittir";
}
?>
Girilen İki Koşulda Eşittir

Bende Bundan sonraki bütün örneklerimi bu şekilde yazacam.

Yukardaki kodda $a ile $b ve $c ile $d nin eşitliğini sorduk. Genel olarak sistemin nasıl çalıştığını anlatayım;

if((true) and (true)): TRUE OLARAK DÖNER PARANTEZLER ARASI ÇALIŞIR
{ 
  echo "Girilen İki Koşulda Eşittir";
}

And operatörü kullandığımız zaman ne olursa olsun her koşul true dönmek zorundadır şayet bir tane bile false dönerse o işlem başarısız olur. Sadece iki koşulda olmasına gerek yok daha fazlada olabilir.

if((true) and (true) and (true) and (false) ): FALSE OLARAK DÖNER PARANTEZLER ARASI ATLANIR ÇALIŞMAZ
{ 
  echo "Girilen koşullar Eşittir";
}

Php soldan sağa olarak parantez içlerindeki koşulları teker teker bakıyor parantezlerin arasından true değerini gördüğü müddetçe ilerliyor şayet herhangi bir yerde başta sonda ortada birtane bile false değerini görürse işlemi sonlandırıyor koşul geçersiz olup parantezlerin arası atlanıyor aradaki kod işlenmiyor.

if((true) and (true) and (false) and (true) ): FALSE OLARAK DÖNER PARANTEZLER ARASI ATLANIR ÇALIŞMAZ
{
  echo "Girilen koşullar Eşittir";
}
<?php
$a = 25;
$b = 25;
$c = "akif";
$d = "yunus"; 
if(($a == $b) and ($c == $d)){
   echo "Girilen İki Koşulda Eşittir";
}
?>

İkinci koşulda yazılan koşul false değerini döndürdüğü için if bloğu çalışmayacak.

<?php
$a = 25;
$b = 25;
$c = "akif";
$d = "akif"; 
$e = "teknopati";
$f = "teknopati"; 
if(($a == $b) and ($c == $d) and ($e == $f)){
   echo "Girilen Koşulların Hepsi Eşittir";
}
?>
Girilen Koşulların Hepsi Eşittir
<?php
$a = 25;
$b = 25;
$c = "akif";
$d = "akif"; 
$e = "teknopati";
$f = "google"; 
if(($a == $b) and ($c == $d) and ($e == $f)){
   echo "Girilen Koşulların Hepsi Eşittir";
}
?>

Son koşulumuz sağlanmadığı için false değeri döndürdü yukarıdada dediğimiz gibi bir tane bile false olursa koşul çalışmayacak ve ekrana hiçbirşey yazdırmıyacak.

<?php
$a = 25;
$b = 25;
$c = "akif";
$d = "yunus"; 
$e = "teknopati";
$f = "google"; 
if(($a == $b) and ($c == $d) and ($e == $f)){
   echo "Girilen Koşulların Hepsi Eşittir";
}
?>

İki tane koşul sağlanmadı dolaysıyla if bloğu false olarak sonlandı ve parantezler arasında olan kısım çalışmadı. Zaten php and operatöründe, koşullarda ilk false değerini gördüğü an işlemi sonlandırıyor ve if bloğu atlanıyor.

Php And İle && farkı

<?php
$a = 25;
$b = 25;
$c = "akif";
$d = "akif"; 
$e = "teknopati";
$f = "teknopati"; 
if(($a == $b) && ($c == $d) && ($e == $f)){
   echo "Girilen Koşulların Hepsi Eşittir";
}
?>
Girilen Koşulların Hepsi Eşittir

Yukarıda and operatörü yerine “&&” operatörünü kullandık bu iki operatör arasındaki fark “&&” operatörünün işlem önceliği bakımından and operatörüne göre daha önde geliyor. Eğer öne almak istediğiniz bir işlem olursa && bunu kullanabilirsiniz daha detaylı bilgi için php detaylı işlem önceliği makalemizi okumanızı öneririm.

Php Veya-Yada (or-||) Operatörü

Php veya-yada operatörü verilen koşullardan herhangi birinin doğru yani true döndürmesi sonucunda geçerli olan operatördür. Yani ve operatürnde olduğunun tam tersi yani sadece bir tane bile true ifadesi olursa koşul geçerli sayılır ve işlem true ifadesi döner. Eğer if yada herhangi bir koşul ifadesinde çalıştırılırsa herhangi bir koşulda true olduğu zaman if bloğundaki parantezlerin içinde yazılan kodlar çalışır.

<?php
$a = 25;
$b = 25;
$c = "akif";
$d = "yunus"; 
$e = "teknopati";
$f = "google"; 
if(($a == $b) or ($c == $d) or ($e == $f)){
   echo "Girilen Koşulların En Az Bir Tanesi Doğrudur.";
}
?>

Görüldüğü gibi sadece bir koşul doğru ise if bloğunun parantezleri arasındaki kodlar çalışıyor.

<?php
$a = 25;
$b = 25;
$c = "akif";
$d = "akif"; 
$e = "teknopati";
$f = "google"; 
if(($a == $b) or ($c == $d) or ($e == $f)){
   echo "Girilen Koşulların En Az Bir Tanesi Doğrudur.";
}
?>
Girilen Koşulların En Az Bir Tanesi Doğrudur.

Sadece bir koşul değil birden daha fazla koşul bile olsa if blokları çalışıyor.

Aynı ve operatöründe anlatığımız gibi bu operatörümüzüde anlatacak olursak;

if((true) or (false)): TRUE OLARAK DÖNER PARANTEZLER ARASI ÇALIŞIR
{ 
  echo "Girilen Koşulların Bir Tanesi Doğrudur.";
}

Or operatörü kullandığımız zaman ne olursa olsun bir tane bile true dönen koşul var ise if bloğu çalışır.

if((false) and (false) and (true) and (false) ): TRUE OLARAK DÖNER PARANTEZLER ARASI ÇALIŞIR
{ 
  echo "Girilen Koşulların En Az Bir Tanesi Doğrudur.";
}

Php soldan sağa olarak parantez içlerindeki koşulları teker teker en son koşula kadar bakıyor true gördüğünü true olarak false gördüğünü false olarak hafızaya alıyor en sonda bütün değerlere bakıyor hepsi false ise koşul false olarak döner eğer bir koşul ifadesinde tanımlı ise koşul ifadesine bağlı olan kodları çalıştırır. Mesala if koşul ifadesine bağlı koşullar ise ve hepsi false olarak dönüyor ise if bloğunun parantezleri arasındaki kodlar çalışmayacak.

if((false) and (false) and (false) and (false) ): FALSE OLARAK DÖNER PARANTEZLER ARASI ATLANIR ÇALIŞMAZ
{
  echo "Girilen Koşulların En Az Bir Tanesi Doğrudur.";
}
<?php
$a = 25;
$b = 11;
$c = "akif";
$d = "yunus"; 
$e = "teknopati";
$f = "google"; 
if(($a == $b) or ($c == $d) or ($e == $f)){
   echo "Girilen Koşulların En Az Bir Tanesi Doğrudur.";
}
?>

Yukardaki kod örneğinde hiçbir değişkenin içindeki değerler birbirine eşit değildir ondan if bloğuda false olarak döner yani hiçbir koşul gerçekleşmedi ondan parantezler arası kodlar çalışmayacaktır.

Php Or İle || farkı

<?php
$a = 25;
$b = 25;
$c = "akif";
$d = "yunus"; 
$e = "teknopati";
$f = "google"; 
if(($a == $b) || ($c == $d) || ($e == $f)){
   echo "Girilen Koşulların En Az Bir Tanesi Doğrudur.";
}
?>
Girilen Koşulların En Az Bir Tanesi Doğrudur.

Yukarıda or operatörü yerine “||” operatörünü kullandık bu iki operatör arasındaki fark “||” operatörünün işlem önceliği bakımından or operatörüne göre daha önde geliyor. Eğer öne almak istediğiniz bir işlem olursa || bunu kullanabilirsiniz daha detaylı bilgi için php detaylı işlem önceliği makalemizi okumanızı öneririm.

Php Değilse (!) Operatörü

Bir koşulun tersini almak için kullanılır yani false gelecek bir koşulun true , true gelecek bir koşulun ise false gelmesini kontrol etmek için kullanılır.

Genellikle her projemizde biz veritabanına bağlanırız bizde bunla ilgili bir örnek yapalım.

<?php
$veritabanibaglantisi = "bağlanıldı";
if($veritabanibaglantisi != "bağlantı sağlanamadı" ){
   echo "Veri tabanından kayıtlar getiriliyor...";
}
?>
Veri tabanından kayıtlar getiriliyor...

Yukardaki örnekler gerçek bir veritabanı bağlantısı veya veritabanı bağlantısı kontrolü değildir sadece bir similasyon gibi birşeydir. Biz hemen hemen her web projesinde veritabanına bağlanırız bazen veritabanına bağlanırken sorunlar yaşarız şayet bunu bir kontrole tabi tutmazsak ciddi sorunlarla karşılaşırız yukardaki kodda diyoruzki veritabanı bağlantısı sağlanamadı değilse veritabanındaki verileri ekrana yaz.

<?php
$veritabanibaglantisi = "bağlanıldı";
if($veritabanibaglantisi != "bağlanıldı" ){
   echo "Veri tabanına bağlanılamadı...";
}
if($veritabanibaglantisi != "bağlantı sağlanamadı" ){
   echo "Veri tabanından kayıtlar getiriliyor...";
}
?>
Veri tabanına bağlanılamadı...

Örneğimizde veritabanına bağlantı sağlanıldı. İlk if koşulunda eğer veritabanı bağlantısı bağlanıldı ya eşit değilse diyoruz veritabanına bağlanılmadı yazısını ekrana yaz diyoruz. Sadece veritabanında kullanılan bir operatör değildir.

<?php
$isim "akif";
$isimIki = "yunus";
if($isim != $isimIki){
  echo "İki isimde farklı."
}
?>
İki isimde farklı.

Arkaplanda işleyen mantığı size bu örnekle anlatmak gerekirse;

<?php
$isim "akif";
$isimIki = "yunus";
if($isim == $isimIki)//FALSE; parantez arasındaki ifade false değerini döndürecek
{
  echo "İki isimde farklı."
}
?>

Eğer biz false gelen ifadeyi istiyorsak yani koşulumuz,şartımız iki ismin birbirine eşit olmaması ise ilk eşittirin yerine bir tane !(ünlem) işareti bırakıyoruz. Eşittirken false olan değer ünlem işaretini gördüğünde onu true değerine döndürür.

<?php
$isim "akif";
$isimIki = "yunus";
if($isim != $isimIki)//TRUE; parantez arasındaki ifade true değerini döndürecek if bloğu çalışacak
{
  echo "İki isimde farklı."
}
?>

Değilse operatörümüz bir değişkenin önüne konulursa o değişkenin varlığını kontrol eder.

<?php
$isim = "akif";
if(!$isim){
  echo'$isim tanımlı bir değişken bulunmamaktadır...';
}
?>

Ekrana hiçbirşey yazdırılmaz çünkü $isim tanımlı değişken tanımlıdır.

<?php
if(!$isim){
  echo'$isim tanımlı bir değişken bulunmamaktadır...';
}
?>
php mantıksal operatörler
php mantıksal operatörler

Sizlere hata kodunu döndürür fakat ikinci cümleye baktığımız zaman if bloğunun işlediğini görüyoruz.

<?php
$isim = null;
if(!$isim){
  echo'$isim tanımlı bir değişken bulunmamaktadır...';
}
?>
$isim tanımlı bir değişken bulunmamaktadır...

Şayet değişkenimizin değeride null tanımlı olursa yine if bloğumuz çalışır.

Php Mantıksal Operatörler yazımızı burada sonlandırıyoruz.

Php Mantıksal Operatörler hakkında daha fazla bilgi için php ‘nin sitesini ziyaret edin. Veya w3schools ‘ un sitesini ziyaret edin. PHP Logical Operators başlıklı bölme göz atınız.

Bir sonraki koşullu ifadeler makalemizde görüşmek dileğiyle.

E-bültene Abone Ol Merak etmeyin. Spam yapmayacağız.

Yazar

İşim Yok Hobilerim Var

İlgili Yazılar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Hızlı yorum için giriş yapın.

Başka Yazı Yok

Kayıt Ol

Zaten üye misiniz? Giriş Yap

Giriş Yap

Henüz üyeliğiniz yok mu? Kayıt Ol