$r = 'x';
$y = 0;
if ($r == $y) {
echo 'Eşitler';
} else
echo 'Eşit değiller';
// Çıktı: Eşitler Sebebi nedir?
10
●116
- 15-06-2020, 00:22:14Yok hocam onunla alakalı bir durum değil, koşuldan sonraki tek satırlık kodlarda parantez koyulmasa da olur.blap adlı üyeden alıntı: mesajı görüntüle
- 15-06-2020, 00:23:48String ve sayısal değer karşılaştırıyorsunuz. Tip kontrolü için "===" 3 eşittir kullanmanız gerekiyor.
- 15-06-2020, 00:27:34Aynen sorunu tam olarak bu denklik operatörü ile çözdüm fakat bu durum sadece 0 integer halinde oluşuyor, diğer integer sayılar için else bloğuna giriyor. Acaba buradaki sıfırı false gibi bir şekilde mi algılıyor, öyle olsa bile yine acayip bir durum var. Neresinden düşündüysem bulamadımsercanarga adlı üyeden alıntı: mesajı görüntüle
- 15-06-2020, 00:28:39Tam olarak öyle.Abdullahx adlı üyeden alıntı: mesajı görüntüle
0 == false
- 15-06-2020, 00:30:16Merhaba hocam, öncelikle buradaki kaynağı inceleyebilirsiniz; ilgili kısım ise:
" 'a string' == 0 also evaluates to true because any string is converted into an integer when compared with an integer. If PHP can't properly convert the string then it is evaluated as 0. So 0 is equal to 0, which equates as true."
çevirisi:
"'a string' == 0 da true olarak değerlendirilir, çünkü herhangi bir dize bir tamsayı ile karşılaştırıldığında bir tamsayıya dönüştürülür. PHP dizeyi düzgün bir şekilde dönüştüremezse 0 olarak değerlendirilir. Yani 0, 0'a eşittir, bu da true anlamına geldiği için if bloğu çalışır."
0 == false