27 октября 2013
Очень часто возникает необходимость в использовании оператора switch для определения поведения функций. Порой требуется перебрать множество вариантов, в таком случае стандартная конструкция становится неоправданно "громоздкой". В этом случае есть простая и элегантная замена, которая поможет сократить время написания кода и сделает его более лаконичным.
Ниже приведен универсальный пример, который может быть использован где угодно:
<?php/*** Возвращает PDO константу связанную с переменной** @param string $type Переменная, которую необходимо проверить** @return int PDO константа*/publicstaticfunctiongetBindConstant($type){switch($type) {case'bool':returnPDO::PARAM_BOOL;break;case'int':returnPDO::PARAM_INT;break;case'null':returnPDO::PARAM_NULL;break;case'string':default:returnPDO::PARAM_STR;break;}}// код после рефакторинга:publicstaticfunctiongetBindConstant($type){$match= ['bool'=> PDO::PARAM_BOOL,'int'=> PDO::PARAM_INT,'null'=> PDO::PARAM_NULL,'string'=> PDO::PARAM_STR,];returnisset($match[$type]) ?$match[$type] : PDO::PARAM_STR;}