switch语句输出数字1

时间:2014-12-24 06:27:56

标签: php switch-statement

我有一个小问题,我有即将发表的声明。

            $usertype = 1;
       switch ($usertype) {

            case "0":
                echo require 'a.php';        
                break;
            case "1":
                echo require 'b.php';
                break;
            default:
               echo require 'c.php';
        }

我正在调用的三个文件中的每一个都包含它们所命名的字母。 此语句将打印'1'以及字母ao和文件名。

例如:如果$usertype = 1;输出为b1,依此类推。

它可能是什么原因?

我在if语句中收到相同的输出。

我之前发现过这个问题,但这对我没那么帮助。

Why does this code output 1?

任何帮助都会很棒

2 个答案:

答案 0 :(得分:1)

首先尝试不带引号:

   $usertype = 1;   
   switch ($usertype) {
        case 0:
            require 'a.php';        
            break;
        case 1:
            require 'b.php';
            break;
        default:
           require 'c.php';
    }

当你打电话给需要时,还要删除" echo" s。

其余问题与a.php,b.php和c.php有关。

答案 1 :(得分:1)

尝试没有echo语句如果你使用echo with require那么它将返回布尔值0/1,所以它也输出1。

   $usertype = 1;
   switch ($usertype) {
        case "0":
             require 'a.php';        
            break;
        case "1":
             require 'b.php';
            break;
        default:
            require 'c.php';
    }