PHP'de Mantıksal Değerlerin Katı Olmayan Karşılaştırması
Önceki örnekte karşılaştırma için
=== operatörünü kullandım. Bu durumda değişkenimiz
true değeriyle hem değer hem de tür olarak
eşitlik açısından karşılaştırıldı.
Bizim problemimizde == operatörünü de
kullanabiliriz. Eğer test değişkeninde
her zaman true veya false
değerlerinden biri olursa, hiçbir şey değişmez:
<?php
$test = true; // buraya ya true ya da false yazıyoruz
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Ancak eğer $test değişkenine
herhangi bir değer gelebiliyorsa, her şey
çok daha karmaşık hale gelir. Böyle bir durumda, eğer değişkende
mantıksal (boolean) bir değer yoksa, bu değer
önce mantıksal türe dönüştürülecek ve ancak
ondan sonra karşılaştırılacaktır.
Örneğin, değişkenimizde 1 sayısı
olsun. Bu durumda önce mantıksal türe dönüştürülecek, yani
true olacak. Ve sonra karşılaştırma yapılacak:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // bu çalışır, çünkü 1 == true doğrudur
} else {
echo '---';
}
?>
Ancak, örneğin 0 sayısı
false'a dönüştürülür. Ve koşulumuz sonuçta
yanlış olacak:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // bu çalışır, çünkü 0 == true doğru DEĞİLDİR
}
?>
Kodu çalıştırmadan, ekrana ne yazdırılacağını belirleyin:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Kodu çalıştırmadan, ekrana ne yazdırılacağını belirleyin:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Kodu çalıştırmadan, ekrana ne yazdırılacağını belirleyin:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Kodu çalıştırmadan, ekrana ne yazdırılacağını belirleyin:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Kodu çalıştırmadan, ekrana ne yazdırılacağını belirleyin:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Kodu çalıştırmadan, ekrana ne yazdırılacağını belirleyin:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>