PHP'de Değer ve Tür Eşitliği
Diyelim ki, tırnak içindeki bir sayının, tırnaksız aynı sayıya eşit olmamasını istiyorsunuz. Başka bir deyişle, karşılaştırmanın sadece değere göre değil, aynı zamanda veri türüne göre de olmasını istiyorsunuz. Bunun için == operatörü yerine === operatörü kullanılmalıdır. Bu operatörle yapılan karşılaştırmaya katı karşılaştırma denir.
Örneğe bakın:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // bu çalışır, çünkü değerler tür olarak eşit değil
}
?>
Ancak iki '3' stringi karşılaştırıldığında ekrana '+++' yazılacaktır:
<?php
if ('3' === '3') {
echo '+++'; // bu çalışır
} else {
echo '---';
}
?>
Aynı şekilde sayılar karşılaştırıldığında:
<?php
if (3 === 3) {
echo '+++'; // bu çalışır
} else {
echo '---';
}
?>
İki operatör arasındaki fark, tam olarak değerler aynı ancak veri türleri farklı olduğunda ortaya çıkar. Diğer durumlarda bu operatörler aynı şekilde çalışır. Örneğin, farklı sayılar karşılaştırıldığında, elbette eksi işareti çıkacaktır:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // bu çalışır
}
?>
Günümüzde PHP'de her yerde katı karşılaştırma kullanılması genel kabul görmüştür. Bu durumda kodun hatalara daha az eğilimli olduğu düşünülmektedir.
Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>