您的位置:首页 > 产品设计 > UI/UE

0=='aa'的结果为什么是true!!!

2015-12-15 15:00 447 查看
下面是一道测试题

if(0=='aa'){
echo "yes";
}else{
echo "no";
}


答案是 yes

为什么会这样?一个int型的0 和一个字符串怎么可能会是0?

因为这里涉及到了知识点:php的类型转换规则

1.如果是一个数字与一个字符串进行比较,那么会把字符串转换为数字再比较

2.字符串的转换规则,若字符串以数字开头,则取开头数字作为转换按结果,若无,则取0

接下来,出一个问题:

if("0"=="000"){
echo "yes";
}else{
echo "no";
}


答案是啥?对,没错,仍然是yes。为啥?

你猜想,可能是因为字符串被转换为了int型?

那么我们给强制转换一下试试呢?

if((string)"0"==(string)"000"){
echo "yes";
}else{
echo "no";
}


没错,还是yes

问题出在哪儿?

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: