PHP Становятся переменными для равенства значению переключателя

Я пытаюсь заставить переменную на своей странице равняться результату переключателя, который я имею.

Это - код:

$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;
};

Как я могу заставить $payment_method равняться результату этого????

До сих пор я получаю ошибку:

Parse error: syntax error, unexpected T_SWITCH in /var/www/account/credits/moneybookers/process.php on line 65
12
задан user342391 23 May 2010 в 14:03
поделиться

5 ответов

Вы должны назначить значение в переключателе:

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;
};
7
ответ дан 2 December 2019 в 03:54
поделиться

Вы не можете использовать конструкцию переключателя таким образом. Вам нужно будет назначить $ payment_method в части case .

В вашем случае, если вы все равно видите echo , вы можете просто удалить $ payment_method = , и он должен работать.

Однако было бы намного проще поместить все данные в массив:

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

if (!array_key_exists($cardtype, $payment_methods))
 echo "Please specify a payment method!";
else
 echo "Your method: ".$payment_methods[$cardtype];
3
ответ дан 2 December 2019 в 03:54
поделиться

Вы должны сделать:

$payment_method = '';

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;
}

if (strlen($payment_method))
{
  echo $payment_method;
}
else
{
  echo "Please specify a payment method!";
}
2
ответ дан 2 December 2019 в 03:54
поделиться

Используйте массивы!

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

$type = @$types[$cardtype] or echo "Please specify a payment method!";
9
ответ дан 2 December 2019 в 03:54
поделиться

выполните следующие действия:

$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!';
}
13
ответ дан 2 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: