<?php
$convertQ = function ($str) {
switch ($str) {
case '0':
case 'No':
return 'no';
case '1':
case 'Yes':
return 'yes';
case 'Unsure':
return 'maybe';
default:
throw new \InvalidArgumentException('Unaccounted for value for questionnaire field: ' . $str);
}
};
var_dump($convertQ(0)); // expect 'no', get 'no'
var_dump($convertQ('No')); // expect 'no', get 'no'
var_dump($convertQ(1)); // expect 'yes', get 'yes'
var_dump($convertQ('Yes')); // expect 'yes', get 'yes'
var_dump($convertQ('Unsure')); // expect 'maybe', get 'maybe'
var_dump($convertQ('a')); // expect thrown error, get error thrown
string(2) "no"
string(2) "no"
string(3) "yes"
string(3) "yes"
string(5) "maybe"
Fatal error: Uncaught InvalidArgumentException: Unaccounted for value for questionnaire field: a in /in/Y8kdD:17
Stack trace:
#0 /in/Y8kdD(26): {closure:/in/Y8kdD:3}('a')
#1 {main}
thrown in /in/Y8kdD on line 17
Process exited with code 255.
string(2) "no"
string(2) "no"
string(3) "yes"
string(3) "yes"
string(5) "maybe"
Fatal error: Uncaught InvalidArgumentException: Unaccounted for value for questionnaire field: a in /in/Y8kdD:17
Stack trace:
#0 /in/Y8kdD(26): {closure}('a')
#1 {main}
thrown in /in/Y8kdD on line 17
Process exited with code 255.
string(2) "no"
string(2) "no"
string(3) "yes"
string(3) "yes"
string(5) "maybe"
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Unaccounted for value for questionnaire field: a' in /in/Y8kdD:17
Stack trace:
#0 /in/Y8kdD(26): {closure}('a')
#1 {main}
thrown in /in/Y8kdD on line 17
Process exited with code 255.