【发布时间】:2015-07-10 06:46:16
【问题描述】:
我正在尝试像这样使用 switch case 从类别 id 生成 css 类名。
我在 switch case 中有多个条件,但我们只会将这一个视为它创建奇怪的输出。
示例代码:
<?php
$value = '907';//base value
$value_array = str_split($value);//create array of string, if its int.
var_dump($value_array);//debug whats in array
switch($value_array[0]){
case 9:
$final = 'i came inside 9';
if($value_array[1].$value_array[2] == 07){
//check whther last 2 digits are 07
$final = 'i came inside 907';
}else if($value_array[1].$value_array[2] == 09){
//chcek whether last 2 digits are 09
$final = 'i came inside 909';
}
break;
}
echo $final;
上面的代码输出为[$value is 907]:
array(3) {
[0]=>
string(1) "9"
[1]=>
string(1) "0"
[2]=>
string(1) "7"
}
i came inside 907
这是正确的行为。但如果我将基值从 907 更改为 909,则输出为 [$value is 909]。
array(3) {
[0]=>
string(1) "9"
[1]=>
string(1) "0"
[2]=>
string(1) "9"
}
i came inside 9
输出应该是i came inside 909。
这是为什么呢?
为什么它适用于
907而不适用于909,即使两者具有相同的数据类型?我知道它们是字符串,我应该将字符串与字符串进行比较,但为什么它适用于一个示例而不适用于另一个示例?
【问题讨论】:
标签: php if-statement switch-statement