下面是一道测试题
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
问题出在哪儿?