php语言switch语句解析,一段switch语句,要具体的过程解析
$code赋值判断,只有0不正确,其他数都正确,0不正确我能理解,但其他数时能正确判断,为什么,要具体的过程解析echo"<br/>如果大于等于4输出big,否则输出sm...
$code赋值判断,只有0不正确,其他数都正确,0不正确我能理解,但 其他数时能正确判断,为什么,要具体的过程解析
echo "<br />如果大于等于4 输出big,否则输出small<br />";
$code = 4; //除0外,其他都正确
switch ($code) {
case $code>=4:
var_dump ($code>=4);
echo 'big';
break;
case $code<=3:
var_dump ($code>=4);
echo 'small';
break;
} 展开
echo "<br />如果大于等于4 输出big,否则输出small<br />";
$code = 4; //除0外,其他都正确
switch ($code) {
case $code>=4:
var_dump ($code>=4);
echo 'big';
break;
case $code<=3:
var_dump ($code>=4);
echo 'small';
break;
} 展开
1个回答
展开全部
switch的用法不是你那样用的
switch的每个case都是一个固定的值,不是你那样的表达式,你写成表达式不会出错,但是结果会使用你表达式的值;
正确的做法是
switch($code){
case 4:
//当code==4时
break;
case 3:
//当code==3时
break;
case 2:
//当code==2时
break;
case 1:
//当code==1时
break;
case 0:
//当code==0时
break;
}
//按照你代码的意思不应该使用switch,应该适应 if else
if($code >= 4){
//你的处理
}else if($code <= 3){
//你的处理
}else{
//你的处理
}
更多追问追答
追问
正常情况下我也不会这样用的,就是我给的例子里为什么能通过,
追答
case $code>=4:
以这条为例
当$code >= 4时,此条case就等于 case 1:
当$code < 4时,此条case就等于 case 0:
你用下面的代码测试一下就知道了:
<?php
$code = 4;
$test = 1;
switch($test){
case $code >=4:
echo "aaaaa";
break;
}
?>
这段代码会输出aaaa
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询