5

PHPバージョン5.2.14で使用しようとしている特定のコードがあります。互換性がありませんか?私は以下を実行します、

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

そしてそれは与える:

解析エラー:構文エラー、予期しないT_FUNCTION、2115行目の/XYZ/functions.phpに「)」が必要です/XYZ/functions.phpの解析エラー

コードは次のとおりです。

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

4 に答える 4

6

あなたのコードはanonymous functions、PHP 5.3 でサポートされていたものを使用しています。そのため、動作させるには PHP 5.3 が必要です。サーバーの PHP インストールをアップグレードします。

クロージャとも呼ばれる匿名関数を使用すると、名前が指定されていない関数を作成できます。

于 2010-09-16T04:40:05.127 に答える
4

PHP 5.3.0以降で利用可能な無名関数を使用しています。

これを解決するには、他の回答で提案されているように PHP をアップグレードします。

または、外部array_mapで関数を定義し、その関数名を呼び出しで使用することもできますarray_map

于 2010-09-16T04:40:28.947 に答える
3

Anonymous Functionsの php マニュアルから:

注: 無名関数は PHP 5.3.0 以降で使用できます。

5.3.0 より前では、次のようにします。

$range = array_map( "name_of_function_to_call", $myArray );
于 2010-09-16T04:43:32.130 に答える
1

ラムダ式の関数は 5.2 ではまだ実装されていないと思います

create_functionを使用するか、単に関数を作成してarray_map で関数名を渡します。

于 2010-09-16T04:42:53.530 に答える