PHP проблемы с кодированием переменных - PullRequest
0 голосов
/ 20 мая 2010

Я пытаюсь отобразить определенные значения, если переменная $ cardtype ==

     $paymentmethod = if( $cardtype == 'visa' ) echo 'VSA'; 
elseif ( $cardtype == 'mastercard' ) echo 'MSC'; 
elseif ( $cardtype == 'mastercard' ) echo 'MSC'; 
elseif ( $cardtype == 'maestro' ) echo 'MAE'; 
elseif ( $cardtype== 'amex' ) echo 'AMX';

Как бы я это сделал ???

Ответы [ 4 ]

6 голосов
/ 20 мая 2010
$types = array( 'visa' => 'VSA', 'mastercard' => 'MSC', 
                'maestro' => 'MAE', 'amex' => 'AMX' );

echo ( isset( $types[ $cardtype ] ) ) ? $types[ $cardtype ] : 'Wrong card type';
2 голосов
/ 20 мая 2010

Для этого вы можете использовать функцию, содержащую инструкцию switch:

function GetPaymentMethod( $cardtype )
{
    switch( $cardtype )
    {
    case 'visa':
      return 'VSA';
    case 'mastercard':
      return 'MSC';
    case 'maestro':
      return 'MAE';
    case 'amex':
      return 'AMX';
    default:
      return '<Invalid card type>';
    }
}

Тест:

echo GetPaymentMethod( 'visa' ); // VSA
0 голосов
/ 20 мая 2010

для вашего собственного кода, вы должны просто удалить странный $paymentmethod = с самого начала.

if( $cardtype == 'visa' ) echo 'VSA';  
elseif ( $cardtype == 'mastercard' ) echo 'MSC'; 
elseif ( $cardtype == 'maestro' ) echo 'MAE'; 
elseif ( $cardtype== 'amex' ) echo 'AMX';

это тоже будет работать.

0 голосов
/ 20 мая 2010

Вот один из способов сделать это:

switch($cardtype) {
 case 'visa':
  echo 'VSA';
  break;
 case 'mastercard':
  echo 'MSC';
  break;
}

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...