2010-09-16 9 views
5

Ich habe ein bestimmtes Stück Code, den ich versuche, mit PHP Version 5.2.14 zu verwenden. Ist es nicht kompatibel? Ich betreibe die folgende,PHP Version 5.2.14/Parse Fehler: Syntaxfehler, unerwartet T_FUNCTION, erwartet ')'

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

Und es gibt:

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

Der Code ist:

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

Antwort

6

Ihr Code verwendet anonymous functions, die in PHP 5.3 unterstützt wurden. Also, Sie brauchen PHP 5.3, um es zum Laufen zu bringen. Aktualisieren Sie die PHP-Installation Ihres Servers.

Anonyme Funktionen, auch bekannt als Schließungen, ermöglichen die Erstellung von Funktionen, die keinen angegebenen Namen haben.

4

Sie verwenden anonymous functions, die seit PHP 5.3.0 verfügbar sind.

Um dies zu beheben, können Sie Ihr PHP wie in anderer Antwort vorgeschlagen aktualisieren.

Alternativ können Sie die Funktion außerhalb array_map definieren und dann in dem Aufruf, dass die Funktionsnamen verwenden, um array_map

3

Von der PHP-Handbuch auf Anonymous Functions:

Note: Anonymous functions are available since PHP 5.3.0.

vor 5.3.0, tun Sie es wie folgt aus:

$range = array_map("name_of_function_to_call", $myArray); 
Verwandte Themen