1

将 $x 显示为未定义。我的 switch 语句有什么问题?

http://localhost/add.php?price_error=1

switch(isset($_GET['price_error']) && $_GET['price_error'] == $x){

            case 1:
                echo '<span class="error_msg">Discount price cannot be greater than original price</span><br/>';
                break;

            case 2:
                echo '<span class="error_msg">Discount cannot be less than 30% of original price</span><br/>';
                break;

            case 3:
                echo '<span class="error_msg">Discount price and original price cannot be greater than $30000 HKD</span><br/>';
                break;

            default: 
                false;
                break;
        }
4

2 回答 2

1

这是因为您还没有定义$x变量(我假设您希望它保持price_errorid):

    $x = isset($_GET['price_error']) ? (int)$_GET['price_error'] : 0;
    switch($x) {
        case 1:
            echo '<span class="error_msg">Discount price cannot be greater than original price</span><br/>';
            break;

        case 2:
            echo '<span class="error_msg">Discount cannot be less than 30% of original price</span><br/>';
            break;

        case 3:
            echo '<span class="error_msg">Discount price and original price cannot be greater than $30000 HKD</span><br/>';
            break;

        default: 
            break;
    }
于 2012-07-07T11:24:41.180 回答
1

开关通常具有可变参数。

尝试:

if(isset($_GET['price_error']) && $_GET['price_error'] == $x){
    switch($x){ 
        //code
    }
}
于 2012-07-07T11:24:47.043 回答