2015-10-29 6 views
0

Я пытаюсь использовать эту функцию с 1 из 3 или более результатов (например, «Да, НЕТ, почему бы и нет», но я не могу найти решение

$row['Funcionario'] = (intval($row['Funcionario']) == 1) ? "Yes" : "No"; 

код выше только дает мне 2 возможности:
Да ($row['Funcionario'] == 1) или Нет ($row['Funcionario'] != 1)
Как показывают Why not если $row['Funcionario'] == 2 или Maybe если $row['Funcionario'] == 3

+0

вы можете использовать несколько вложенных if/else вместо использования тернарного оператора .. или использовать переключатель –

+1

, вы должны использовать [переключатель] (http://php.net/manual/en/control-structures.switch.php) для нескольких проверок – DrKey

ответ

0

Вы должны смотреть в switch заявления

switch ($row['Funcionario']) { 
    case 1: 
     echo 'This code will be executed if $row[\'Funcionario\'] is 1'; 
     break; 
    case 2: 
     echo 'This code will be executed if $row[\'Funcionario\'] is 2'; 
     break; 
    case "Yes": 
     echo 'This code will be executed if $row[\'Funcionario\'] is Yes'; 
     break; 
    default: 
     echo 'This code will be executed if $row[\'Funcionario\'] is not any of the values before 
} 

Вы можете заменить значения после case все, что вы хотите, и следующий код до следующего break будет выполняться, если $row['Funcionario'] является то, что значение.

+0

Спасибо sweg_or_yolo Это работает. – jmdc

2

Легкий способ? :

Определяем массив ...

$answers = ["No", "Yes", "Why not", "Maybe"]; 

И получить от него ...

$row['Functionario'] = $answers[$row['Functionario']]; 

Если массив одноразового использования (то есть. не используемые другими полями, которые могут иметь эти значения), вы можете сократить его до:

$row['Functionario'] = ["No", "Yes", "Why not", "Maybe"][$row['Functionario']]; 

Читаемость может отличаться. Подумайте о добавлении пробелов и/или комментариев, чтобы объяснить, что происходит.

Смежные вопросы