PHP获取变量等于switch的值

use*_*391 12 php variables switch-statement

我试图在我的页面上得到一个变量,以等于我所拥有的开关的结果.

这是代码:

$payment_method = switch ($cardtype) {
case "visa" : echo "VSA"; break;
case "mastercard" : echo "MSC"; break;
case "maestro" : echo "MAE"; break;
case "amex" : echo "AMX" ; break;
default : echo "Please specify a payment method!"; break;
};
Run Code Online (Sandbox Code Playgroud)

如何让$ payment_method等于这个????的结果?

到目前为止,我收到一个错误:

Parse error: syntax error, unexpected T_SWITCH in /var/www/account/credits/moneybookers/process.php on line 65
Run Code Online (Sandbox Code Playgroud)

zer*_*kms 13

这样做:

$types = array('visa' => 'VSA', 'mastercard' => 'MSC', 'maestro' => 'MAE', 'amex' => 'AMX');
if (isset($types[$cardtype])) {
    $payment_method = $types[$cardtype];
} else {
    echo 'Please specify a payment method!';
}
Run Code Online (Sandbox Code Playgroud)


Eri*_*ric 9

使用数组!

$types = array("visa"       => "VSA",
               "mastercard" => "MSC",
               "maestro"    => "MAE",
               "amex"       => "AMX");

$type = @$types[$cardtype] or echo "Please specify a payment method!";
Run Code Online (Sandbox Code Playgroud)


sal*_*the 7

您应该交换机中分配值:

switch ($cardtype) {
    case "visa":
        $payment_method = "VSA";
    break;
    case "mastercard":
        $payment_method = "MSC";
    break;
    case "maestro":
        $payment_method = "MAE";
    break;
    case "amex":
        $payment_method = "AMX";
    break;
    default:
        echo "Please specify a payment method!";
    break;
};
Run Code Online (Sandbox Code Playgroud)