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;
}
展开
 我来答
辞友缘心
2014-10-30 · TA获得超过684个赞
知道小有建树答主
回答量:432
采纳率:0%
帮助的人:362万
展开全部

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式