ringa_lee2017-04-11 09:57:56
我们可以在一些地方进行 echo 输出变量,如以下代码所示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
在结果中,我们可以发现,echo $filedStr;
这步并没有输出。
这个时候,就应该看PHP官方文档里,为什么会导致这样,原因就出于 switch。
在PHP官方文档,什么,这是英文的,当然也有中文的。里面有句话:
Attention if you have mixed types of value in one switch statemet it can make you some trouble
当然底下给出了一种方案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
里面提到了 PHP 用了动态类型转换,也就是这篇博客里讲的。
动态语言的变量类型是随存储的变量而变化的,即变量类型是根据具体环境而进行变化的。
当 $value 值为 'ssid' 时,执行到 case 0 的时候,要转换为整形和其做比较,因为转换之后相等,所以匹配不到后面的 'ssid' 。
怪我咯2017-04-11 09:57:56
switch
匹配里, case
是整数, 这会导致在匹配的时候把字符串
强制转换为integer
, ssid
转为int
为0, 是不会匹配到case 'ssid'
的怪我咯2017-04-11 09:57:56
谢谢大家的回答,已经懂了.
1 2 3 4 5 |
|