【发布时间】:2022-01-05 21:15:31
【问题描述】:
我试图在学校做一些 PHP 练习,但我遇到了这个......
我的代码:
<?php
$arr = [ 3, 4, 5, 6, "apple", 7.2, -10, "banana", 5, 5.1, 6, "okke" ];
$item = 0;
while ( $item < count($arr) ) {
echo $item." - ";
switch ( $item ) {
case $arr[ $item ] == 5:
echo $arr[ $item ]." --> This is 5<br />";
break;
case $arr[ $item ] == 6:
echo $arr[ $item ]." --> This is 6<br />";
break;
default:
echo " --> Not found<br />";
}
$item++;
}
?>
这是我得到的结果:
0 - 3 --> This is 5
1 - --> Not found
2 - 5 --> This is 5
3 - 6 --> This is 6
4 - --> Not found
5 - --> Not found
6 - --> Not found
7 - --> Not found
8 - 5 --> This is 5
9 - --> Not found
10 - 6 --> This is 6
11 - --> Not found
但在第一行我应该得到:
0 - --> 未找到
为什么 Switch 不能正常工作??
【问题讨论】:
-
switch的用法不太好。如果你正在使用它,应该有switch ( $arr[$item] )。比cases 你可以使用简单的case 5: ...; case 6: ...; default没有比较。 -
谢谢@pavel 我用 switch($arr[$item]) 解决了,但是为什么会这样呢?
标签: php debugging switch-statement