2012-01-17 8 views
0

私のローカルDevマシンでうまく動作するカスタムWordPressプラグインがあります。私のWPプラグインのPHP構文解析エラー - あるマシンでは動作しますが、他のマシンでは動作しません

機能:

function _iniloader_get_dirs($dir) { 
     $dirs = array_filter(scandir($dir), function ($item) use ($dir) { 
      return (is_dir($dir.'/'.$item) && $item != "." && $item != ".."); 
     }); 
     // Use array_values to reset the array keys: 
     return array_values($dirs); 
} 

エラー:

Parse error: syntax error, unexpected T_FUNCTION in (in plugin) on line 30

ライン30は、関数の2行目です。

私のローカルMAMPサーバー= PHPバージョン5.3.6
のLinux運用サーバー= PHPバージョン5.3.5

誰でも問題は何ができるかのアイデアを持っていて、なぜそれを1つの環境に表示さだろうが、他のものではない?


UPDATE:私はちょうど私が生産ボックス上の通常のPHPファイルでこの機能を置けば、それはの一部だときにのみエラーをトリガですので、それは微を実行し、気づい

私にはさらに意味がないWordPressのプラグイン...

+0

はプロダクションボックスのウィンドウですか? –

+0

Linuxはありません。 WebFaction。 – Yarin

+1

プロダクションサーバーと誤認されている可能性があります。呼び出しスクリプトで 'print PHP_VERSION;'を使ってバージョンを調べてください。 – mario

答えて

2

おそらくそれはClosuresのあなたの使用です。

これらはPHP> 5.3で利用可能になりました。プロダクションサーバーが5.3またはバグの可能性があるマイナーバージョンを実行していません。

リファクタリングのuse節と私は両方の環境で動作すると想像します。

+0

あなたが正しいように見えます。これを<5.3に変換する方法についてのガイダンスはありますか?関数全体を書き直すことなく、 'use'節をどのくらい正確にリファクタリングしますか? – Yarin

+0

残念ながら、 [伝統的なコールバック](http://www.php.net/manual/en/language.pseudo-types.php#language.types.callback)を使用する必要があります。この場合、関数全体を書き直す必要があります* 。 –

+0

ジェイソン・ロジャー、ありがとう。 – Yarin

関連する問題