switch ($foo)
{
case 3 || 5:
bar();
break;
case 2:
apple();
break;
}
在上面的代码中,第一个 switch 语句是否有效?bar()如果值为$foo3 或 5 ,我希望它调用该函数
switch ($foo)
{
case 3 || 5:
bar();
break;
case 2:
apple();
break;
}
在上面的代码中,第一个 switch 语句是否有效?bar()如果值为$foo3 或 5 ,我希望它调用该函数
您应该利用 switch 语句的失败:
switch ($foo)
{
case 3:
case 5:
bar();
break;
case 2:
apple();
break;
}
PHP 手册页有一些类似的示例。
我认为你需要的是:
switch ($foo)
{
case 3:
case 5:
bar();
break;
case 2:
apple();
break;
}
有趣的是,我听说 Perl 正在(或者现在可能已经)引入了这种语法,大致如下:
if ($a == 3 || 5)
我不是那种语法的忠实拥护者,因为我不得不编写相当多的词法解析器,并且相信语言应该尽可能明确。if但是,Perl 已经解决了所有这些or问题
switch相反,请使用语句的主要优点之一:
switch($foo) {
case 3:
case 5:
bar();
break;
case 2:
apple();
break;
}
是的,我认为你所拥有的相当于:
<?php
$foo = 5000 ;
开关($foo)
{
case true : // Gzipp:进行 '==' 风格的比较
echo '第一个' ; // 在 $foo 和 case 中的值之间
休息; // 所以对于“真实”的 $foo 值
// 你总是得到这个。
案例2:
echo '第二个';
休息;
默认:
回声“都不是”;
休息;
}
?>
不,如果你写了case 3 || 5:,那你还不如直接写case True:,这肯定不是你想要的。但是,您可以将 case 语句直接放在彼此下方:
开关 ($foo)
{
案例3:
案例5:
酒吧();
休息;
案例2:
苹果();
休息;
}