【发布时间】:2016-07-24 00:31:14
【问题描述】:
我有一个数组。
$arrayVar = array(8, 10, 'u'=>24, 'm'=>45, 54, 45);
foreach($arrayVar as $curK=>$curV)
switch($curK)
{
case 'u':
echo $curK; //statement
break;
default:
//statements
}
为什么除了标签与$curK的值匹配时,所有未指定数组键的$curK都会执行第一种情况下的语句?
我确实尝试通过检查 $curK 的空值来解决问题
if(!empty($curK)) {
foreach($arrayVar as $curK=>$curV)
switch($curK)
{
case 'u':
echo $curK; //statement
break;
}
}
...
$arrayVar = array('a'=>8400,'u'=>1100,1300,1400,true);
echo '<pre>'; print_r($arrayVar);
foreach($arrayVar as $curK=>$curDU)
{
echo "\n" . $curK . "\t";
switch($curK)
{
case 'a':
echo 'When a : ' . $curK . "\n";
break;
case 'u':
echo 'When u : ' . $curK . "\n";
break;
default:
}
}
这是我得到的结果
数组 ( [a] => 8400 [u] => 1100 [0] => 1300 [1] => 1400 [2] => 1 )
a 当 a : a
你当你:你
0 当 a : 0
1
2
问题出现在 php 分配的密钥 0 上。
【问题讨论】:
标签: php arrays switch-statement array-key