关于php switch中的一些坑

coding in php中的一些坑:

以下switch会输出什么结果?

关于php switch中的一些坑

乍一看 应该是进入第一个case 其实不然 switch 匹配的是case中表达式的值 不能把case当if用
这里第一行case ($a >= 0)
0>=0 这个条件表达式 的值为 true switch($key) 中传过来的是 0

0和true 匹配 当然匹配不上。 下面几行都是false

第二行 0 和false就搞上了(switch非严格匹配,自动转换类型) 所以当然是第二个case.

所以最后的结果应该是: 1