PHP

if($deger==7) ya da if(7==$deger)

Eğer dikkat ettiyseniz bazı yazılımcılar bizim if($deger==7) olarak kullandığımız kodun tersini kullanıyorlar. Acaba merak ettiniz mi ne farkı var diye?

Öncelikle bu tarz “if(7==$deger) ya da if($deger==7)” bu yazımın kaynağı C dilidir. = işareti ile atama, == işaretleri ile de eşit mi karşılaştırması yapılır.

Yazılımcılar özellikle çok satırlı kodlar yazarken dalgınlıkla == işaretleri yerin = işareti kullanabiliyorlar. Bu da küçük gibi görünen ama büyük bir mantık hatasına sebep olabiliyor. Bunları örnek üzerinde inceleyelim.

 

Yukarıdaki kod parçasında, normalde kullandığımız yazım biçimiyle karşılaştırma yaparak ekrana çıktı ürettirmeye çalıştık. Peki $değer == 7 yerine yanlışlıkla $değer = 7 yazsaydık ne olurdu. Görelim..

 

Bu demek oluyor ki $deger ile 7 eşit olmasa bile orada bir atama işlemi başarılı bir şekilde gerçekleştiği için if şartı yerine getirildiğini zannederek ekrana çıktıyı gönderiyor. Bu da büyük bir mantık hatasına sebep oluyor. Bu tür bir mantık hatası ile karşılaşmamak için karşılaştırma ifadesini ters kullanırsak böyle bir mantık hatasın kurtulmuş oluyoruz.

if($deger==7) yerine if(7==$deger)

 

if($deger=7) yerine if(7=$deger)

 

Bu ifade “if(7 = $deger)” yanlış kullanıldığı için kodu çalıştırdığımızda bir hata alacağız. Bu sayede hata satırına giderek kodumuzu hemen düzeltebileceğiz.

Kocaeli Üniversitesi Teknik Eğitim Fakültesi’nden Bilgisayar Öğretmenliği Lisans ve Ahmet Yesevi Üniversitesi Yönetim Bilişim Sistemleri Yüksek Lisans mezunu olan Fatih Çal şuanda Düzce Üniversitesi Bilgisayar Mühendisliği bölümünde okumaya devam etmektedir. Bilişim sektöründe 10 seneyi aşkın tecrübeye sahip olan Fatih Çal, başta web projeleri olmak üzere çeşitli projelerde ve kurumlarda çalışmış, şuan Uluslararası Genç Derneği’nde Başkan Yardımcısı ve İstanbul Medeniyet Üniversitesi Bilgi İşlem Daire Başkanlığı’nda Şube Müdürü olarak görev almaktadır.
  • yani düz yazdığımızda yanlış yazsak bile ekrana yazdırıyorken ters ve yanlış yazdığımızda hata veriyor. Doğrumu anlamışım 🙂

  • Serinin devamı gelecek mi ?