Я пытаюсь заставить переменную на своей странице равняться результату переключателя, который я имею.
Это - код:
$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
Вы должны назначить значение в переключателе:
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;
};
Вы не можете использовать конструкцию переключателя
таким образом. Вам нужно будет назначить $ 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];
Вы должны сделать:
$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!";
}
Используйте массивы!
$types = array("visa" => "VSA",
"mastercard" => "MSC",
"maestro" => "MAE",
"amex" => "AMX");
$type = @$types[$cardtype] or echo "Please specify a payment method!";
выполните следующие действия:
$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!';
}