нет констант для типов (я хочу, чтобы моя строка «REGEX_NAME», например «REGEX_EMAIL», стала REGEX_NAME, например, REGEX_EMAIL) - PullRequest
1 голос
/ 05 января 2010

Я должен написать вручную:

if($pattern == 'REGEX_EMAIL') $pattern = REGEX_EMAIL;
if($pattern == 'REGEX_PASSWORD') $pattern = REGEX_PASSWORD;

Есть ли другой способ?

Ответы [ 2 ]

3 голосов
/ 05 января 2010

Вы можете использовать функцию constant , чтобы получить значение константы по ее имени:

if (substr($pattern, 0, 6) == 'REGEX_' && defined($pattern)) {
    $pattern = constant($pattern);
}
1 голос
/ 05 января 2010

Одним из решений (пусть и смешных) было бы использование ассоциативного массива ...

$regexs = array('REGEX_NAME' => REGEX_NAME, 'REGEX_EMAIL' => REGEX_EMAIL);
...