Вариант определения анонимной функции на основе версии PHP?
Следующая ошибка завершается с ошибкой разбора на PHP 5.2.X:
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
$greater = function($left, $right) {
return $left > $right;
}
}
else {
$greater = create_function('$left, $right', 'return $left > $right;');
}
Я думаю, причина, вероятно, довольно очевидна, поэтому реальный вопрос:
"Есть ли какой-то способ сделать это, не помещая определение, зависящее от 5.3.0, в отдельный файл, а затем условно включая файл, если версия 5.3.0 или выше?"
Если бы функция, которую я хотел определить, была именованной функцией первого класса, у меня было бы меньше сложностей с переносом ее в отдельный файл. Но с точки зрения читабельности кода (IMO) одним из преимуществ анонимной функции является тот факт, что ее исходный текст виден в теле модуля, который определяет / использует его. Откладывание определения в другом исходном файле в значительной степени убивает эту выгоду.