2010-09-16 13 views
5

Mam pewien fragment kodu, który próbuję użyć z PHP w wersji 5.2.14. Czy to jest niezgodne? Biegnę, co następujePHP wersja 5.2.14/Błąd parsowania: błąd składniowy, nieoczekiwany T_FUNCTION, oczekiwanie ')'

jailshell-3.2$ php -l /XYZ/functions.php 

I daje:

Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in /XYZ/functions.php on line 2115 Errors parsing /XYZ/functions.php

Kod jest:

2114 $range = array_map(
2115    function (DatePeriod $p) use ($vt2) { 
2116    $res = array(); 

Odpowiedz

6

Twój kod wykorzystuje anonymous functions które były obsługiwane w PHP 5.3. Potrzebujesz PHP 5.3, żeby to działało. Uaktualnij instalację PHP na serwerze.

Funkcje anonimowe, znane również jako zamknięcia, umożliwiają tworzenie funkcji, które nie mają określonej nazwy.

4

Używasz anonymous functions, które są dostępne od PHP 5.3.0.

Aby rozwiązać ten problem, możesz zaktualizować PHP zgodnie z sugestią w innej odpowiedzi.

Alternatywnie można zdefiniować funkcję poza array_map a następnie użyć tej nazwy funkcji w zaproszeniu do array_map

3

z podręcznika PHP na Anonymous Functions:

Note: Anonymous functions are available since PHP 5.3.0.

przed 5.3.0, zrób to tak:

$range = array_map("name_of_function_to_call", $myArray); 
Powiązane problemy