Dre*_*din 1 php switch-statement
我有以下功能正常工作,除了你使用输入值为0时我试过去看看0是否等同为NULL或者我做错了什么.
当输入零时,它输出高于20的高级值.任何人都可以解释一下吗?谢谢
我打算让开关等于0-10,11-20,21-30,31-40,41 +但是对于这个例子我只是使用了两个场景.谢谢
**编辑我确实想要值20 :)
function strengthPlan( $data ) {
$data = ( int ) $data;
switch( $data ) {
case( $data <= 19 ):
$result = 'standard strength';
break;
case( $data >= 20 ):
$result = 'advanced strength';
break;
}
return $result;
}
echo strengthPlan( 0 );
Run Code Online (Sandbox Code Playgroud)
pim*_*vdb 12
你的逻辑不正确.Switch语句正在检查是否相等.您的代码正在检查是否$data等于TRUE或FALSE.
case( $data < 20 ):
Run Code Online (Sandbox Code Playgroud)
将评估为:
case( TRUE ):
Run Code Online (Sandbox Code Playgroud)
因为0 < 20.
由于0不等于TRUE但是FALSE(转换后),第二种情况是运行的.
基本上,你不能switch case用于<或>仅用于==.