Peynir altı suyu bu true değerlendiriyor?
<?php
$val2=0;
//outputs that is an error123
if($val2=='error123'){
echo 'that is an error123<br />';
}else{
echo 'that is not an error123<br />';
}
Sen bir tamsayı için bir dize karşılaştırma ediyoruz. Karşılaştırma yapmak için dize ilk tamsayıya dönüştürülür. 'error123' bir tam sayıya dönüştürülür zaman 0 olur.
echo intval("error123");
Sonuç:
0
PHP kılavuzda an explanation Bu davranış yoktur.
Bir dize ya da karşılaştırma sayısal dizeleri içeren bir dizi karşılaştırmak, sonra her dize bir sayıya dönüştürülür ve karşılaştırma sayısal gerçekleştirilir.
Size çeşitli karşılaştırmalar sonucunu gösteren bir hızlı başvuru sayfası PHP type comparison tables vardır. Tablo "== ile Loose karşılaştırmalar" bölümüne bakın. Bu soru ile ilgili ilginç kısmı 0 == "php" TRUE olarak gösterilir olmasıdır.
type juggling üzerine bir sayfası vardır. A user comment, bu sayfada bu gibi neredeyse aynı örnek verir.
Eğer türü hokkabazlık kullanımını === yerine istemiyorsanız ==.
Bu bir deneyin: $val2==='error123'
Bu değer değişkenin and tipi değerlendirecektir. Burada daha fazla:
http://us.php.net/manual/en/language.operators.comparison.php