我正在尝试这样的代码:
$event = 0;
switch ($event) {
case 'content':
echo "/content";
break;
case 'start':
echo "/start";
break;
default :
echo "not available";
break;
}
此代码在执行时打印/content
,因此... 0(零,整数,分配给$ event变量)被评估为'content'。的为什么吗
答案 0 :(得分:5)
这就是实际发生的事情
0 == 'content'
Php尝试将字符串content
强制转换为整数。由于content
不等于int,因此它默认为0。
导致:
0 == 0
答案 1 :(得分:1)
发生从一种类型到另一种类型的隐式转换。
intval('内容')为0。
答案 2 :(得分:1)
这是因为混合数字和字符串变量时在php中定义运算符的方式:当字符串没有有效数字时,它被处理为0
So:
1+"xxx" => 1+0=1
0=="xxxx => 0==0=>true
etc..
这就是php设计的方式。我不喜欢它btw