Способ достижения обратной совместимости от PHP 5.3 до 5.2 (директива Pre процессора?) - PullRequest
0 голосов
/ 15 ноября 2011

Я написал небольшую классную библиотеку PHP, но она использует замыкания, которые вызывают ОШИБКУ PARSE (не ошибка времени выполнения!), Когда я запускаю приложение на своем веб-хосте (1and1). Мне бы хотелось что-то вроде директивы препроцессора c ++ или комментария к конкретной версии CSS, который в основном игнорирует сегмент кода для PHP <5.3 </p>

$this->register_validator(
    function($val) use ($length_expr)
    { 
        $x = strlen($val);
        return eval("return $x $length_expr;");
    }
);

1 Ответ

1 голос
/ 15 ноября 2011

Я думаю, что есть синтаксическая ошибка, которая вызывает ошибку разбора в коде eval ().

Я пробовал это в PHP 5.2.17 и 5.3.6 тоже:

Вы не можете вернуть два значения сразу, как это:

return $x $legth_expr;

Это вызывает ошибку разбора в упомянутых двух версиях.

Чего именно вы хотите достичь?

...