PHP == ile === Arasındaki Fark

Php ‘de bir değerin başka bir değere eşit olup olmadığını operatör kullanarak kontrol ettirebiliyoruz. Bunu yaparken karşınıza aşağıdaki genellikle gibi bir kod çıkar.

[php]
$sayi = 4;
if ($sayi == 4){
echo "sayı 4 ‘e eşit";
}
[/php]

Yukarıdaki kodda her yerde göreceğiniz klasik bir eşitlik kontrolü var. Ama bazen karşınıza denktir ( === ) çıkabilir. Peki bu ne demek onu açıklayalım. Yukarıdaki kodumuzu aşağıdaki şekilde yazalım sizce çalışır mı ?

[php]
$sayi = "4";
if ($sayi == 4){
echo "sayı 4 ‘e eşit";
}
[/php]

Yukarıdaki kodda biz kodumuzda $sayi değişkenini string tanımladık ama if ile kontrol ederken integer olarak yazdık. Değeri eşit olmasına rağmen değişken tipleri farklı. ==  operatörünü kullanırken bu bir sorun değildir çünkü eşittir( == ) operatörü değeri kontrol eder değişkenin tipine bakmaz.

Eğer biz === operatörü kullanırsak bunun anlamı hem değeri hemde değişkenin tipinin aynı olması gerektiğidir. Yani aşağıdaki kodda else bloğu devreye girer.

[php]
$sayi = "4";
if ($sayi == 4){
echo "sayı 4 ‘e eşit ve tipleri aynı.";
}else{
echo "sayı 4 e eşit değil ya da tipi farklı.";
}
[/php]

Çok basit bir konu aslında. Örneklerle açıklamaya çalıştım. Sorularınızı yorum atarak sorabilirsiniz.

Cem Karakurt: