我在用PHP的Switch语句中遇到了点问题,我写了一段类似下面的代码(其中有一个case 08):
<?php 
switch ($_GET["id"])
{
case 08:
echo "可以;";
break;
default:
echo "无法选择08;";
}
?>
保存成test.php文件;
但是访问 test.php?id=08 的时候输出的却是“无法选择08”;(代码跟上面写的一样)
是我哪里弄错了么?

解决方案 »

  1.   

    case 08:
    改成 case "08":
      

  2.   

    搞定,加上个双引号就OK了。
    <?php 
    switch ($_GET["id"])
    {
    case "08":
    echo "可以;";
    break;
    default:
    echo "无法选择08;";
    }
    ?>
    不过这是为什么?
      

  3.   

    因为在PHP中,$_GET和$_POST默认都是以字符串形式传递的,所以必须加上单引号或者双引号。
      

  4.   

    一定要记住,$_GET提交的方式是string类型的,你的08也必须是字符串类型的,加个""吧;
      

  5.   


    说的很好。case 08:
    改成 case "08":
      

  6.   


    <?php 
    switch ($_GET["id"])
    {
    case "08":
        echo "可以;";
        break;
    default:
        echo "无法选择08;";
    }
    ?>
    不建议直接使用$_GET["id"],建议:
    $id=$_GET["id"];//此处应该加一些安全方面的判断操作,例如isset(),防止SQL注入
    switch ($id)
    {
    case "08":
        echo "可以;";
        break;
    default:
        echo "无法选择08;";
    }
    ?>