Используйте функциональные эквиваленты, такие как intval
, чтобы получить «динамический дескриптор»:
$funcs = ['boolean' => 'boolval', 'integer' => 'intval', 'string' => 'strval', 'float' => 'floatval', ...];
if (!array_key_exists($type, $funcs)) {
return $val;
} else {
return call_user_func($funcs[$type], $val);
}
Обратите внимание, что это может быть короче, но не обязательно в целом лучше чем switch
…