以下PHP
代码输出是
if("2"== true){
echo "yes";
}
else{
echo "no";
}
?>
但下面的Javascript
代码会提醒否
<script>
if("2" == true){
alert('yes');
}
else{
alert('no');
}
</script>
我不知道这些陈述将如何在其他语言中执行。为什么输出不同?
答案 0 :(得分:1)
在PHP&#34; ==&#34;只检查是否设置了值,然后它自动为真。
在JS中会有一个类型转换来检查值。 True将转换为&#34; 1&#34;和&#34; 1&#34;不等于&#34; 2&#34;。
答案 1 :(得分:-1)
在PHP中,您需要检查===
以检查数据类型
if ("2" === true) {
}
看看当PHP将你的字符串转换为bool时会发生什么:
php > var_dump ((bool) "1234");
bool(true)
php > var_dump ((bool) "");
bool(false)