Анонимная функция PHP вызывает синтаксическую ошибку при некоторых установках

У меня есть следующий код:

$file_check_method_func = function($n) { $n = absint($n); if(1 !== $n) { $n = 0; } return $n; }; $valid['file_check_method'] = array_map($file_check_method_func, $input['file_check_method']); 

Это работает на моей установке PHP 5.3.5, но когда я запускаю этот код при установке PHP 5.2.15, я получаю:

 Parse error: syntax error, unexpected T_FUNCTION in /home/xxxx/public_html/xxxx/xxxxxxx/wp-content/plugins/wordpress-file-monitor-plus/classes/wpfmp.settings.class.php on line 220 

Строка 220 является первой строкой вышеуказанного кода.

Итак, мой вопрос (ы), есть ли что-то неправильно написанное в моем коде, которое дало бы эту ошибку? Если это не из-за ошибки или не поддерживается функция в PHP 5.2.15? Если да, то как я могу написать вышеприведенный код, чтобы не генерировать ошибку?

Вышеприведенный код находится в функции в классе.

Анонимные функции – это функция, добавленная в 5.3

Для более ранних версий создайте именованную функцию и укажите ее по имени. Например.:

 function file_check_method_func($n) { $n = absint($n); if(1 !== $n) { $n = 0; } return $n; } $valid['file_check_method'] = array_map('file_check_method_func', $input['file_check_method']); 

или внутри класса:

 class Foo { protected function file_check_method_func($n) { $n = absint($n); if(1 !== $n) { $n = 0; } return $n; } function validate($input) { $valid = array(); $valid['file_check_method'] = array_map(array($this, 'file_check_method_func'), $input['file_check_method']); return $valid; } } 

Я настоятельно рекомендую не полагаться на create_function .

Синтаксис анонимных функций в примере может использоваться только в PHP> = 5.3. Перед PHP 5.3 анонимные функции могут быть созданы только с помощью create_function() .

Добавлены анонимные функции с использованием этого синтаксиса функций 5.3. Но вы можете определить анонимные функции, используя http://www.php.net/manual/en/function.create-function.php