正确使用PHP开关语句
可能重复:正确使用PHP开关语句,php,Php,可能重复: 我想用switch做一个测试,这是我写的代码: <?php $moisActuelle = date("n"); switch($moisActuelle) { case 1 || 2 || 3 : echo'L\'hiver'; break; case 4 || 5 || 6 : echo'Le printemp';
我想用switch做一个测试,这是我写的代码:
<?php
$moisActuelle = date("n");
switch($moisActuelle)
{
case 1 || 2 || 3 :
echo'L\'hiver';
break;
case 4 || 5 || 6 :
echo'Le printemp';
break;
case 7 || 8 || 9 :
echo'L\'été';
break;
case 10 || 11 || 2 :
echo'L\'automne';
break;
}
?>
但不管$moisActuelle是什么,这段代码总是在第一种情况下执行
switch($moisActuelle)
{
case 1:
case 2:
case 3:
echo'L\'hiver';
break;
}
Switch语句将查找第一个真实情况,然后该语句将继续执行所有操作,直到找到
break
或default
我不确定您是否可以这样做,但有一种方法:
<?php
$moisActuelle = date("n");
switch($moisActuelle)
{
case 1:
case 2:
case 3:
echo'L\'hiver';
break;
// etc
}
?>
我更喜欢这样:
<?php
$decisionTable = array(
'1' => 'L\'hiver',
'2' => 'L\'hiver',
'3' => 'L\'hiver',
'4' => 'Le printemp',
'5' => 'Le printemp',
'6' => 'Le printemp',
'7' => 'L\'été',
'8' => 'L\'été',
'9' => 'L\'été',
'10' => 'L\'automne',
'11' => 'L\'automne',
'12' => 'L\'automne',
);
$moisActuelle = date("n");
echo $decisionTable[$moisActuelle];
?>
请参阅此问题:或直到找到“continue”语句。只是为了彻底。
<?php
$moisActuelle = date("n");
switch(true)
{
case in_array($moisActuelle, array(1, 2, 3)):
echo'L\'hiver';
break;
case in_array($moisActuelle, array(4, 5, 6)):
echo'Le printemp';
break;
case in_array($moisActuelle, array(7, 8, 9)):
echo'L\'été';
break;
case in_array($moisActuelle, array(10, 11, 12)):
echo'L\'automne';
break;
}
?>