Я должен написать вручную:
if($pattern == 'REGEX_EMAIL') $pattern = REGEX_EMAIL; if($pattern == 'REGEX_PASSWORD') $pattern = REGEX_PASSWORD;
Есть ли другой способ?
Вы можете использовать функцию constant , чтобы получить значение константы по ее имени:
constant
if (substr($pattern, 0, 6) == 'REGEX_' && defined($pattern)) { $pattern = constant($pattern); }
Одним из решений (пусть и смешных) было бы использование ассоциативного массива ...
$regexs = array('REGEX_NAME' => REGEX_NAME, 'REGEX_EMAIL' => REGEX_EMAIL);