2017-08-04 2 views
-1

ローカルシステムで正常に動作していますが、バージョンが5.2のため、サーバーで次のエラーが発生しています:google-api-php-clientライブラリを使用しています。PHP 5.2での匿名関数の問題によるサーバーでのエラーの取得

syntax error, unexpected T_FUNCTION, expecting ')' 

我々はそれがこの機能を動作させるためのコードでいくつかの変更を行うことにより、このエラーを修正することができればだから私は、ここでは2つの質問がありますか?以下はautoload.php

spl_autoload_register(
function ($className) { 
    $classPath = explode('_', $className); 
    if ($classPath[0] != 'Google') { 
    return; 
    } 
    // Drop 'Google', and maximum class file path depth in this project is 3. 
    $classPath = array_slice($classPath, 1, 2); 

    $filePath = dirname(__FILE__) . '/' . implode('/', $classPath) . '.php'; 
    if (file_exists($filePath)) { 
    require_once($filePath); 
    } 
} 
); 

のコードですが、私はこの問題を解決するために、上記の変更するかどうかはわかりませんし、また、PHPのバージョン5.2上で実行することができます任意のライブラリはありますか?私がこれを使用するかのように、他の機能でエラーが発生する可能性があります。ありがとう!

+3

PHP 5.2は、(http://php.net/eol.php)[6年以上にわたり]のために死んでてきました。あなたがアップグレードするのは過去の時間です。 –

+0

@PaulCrovellaはい、あなたは正しいですが、私が取り組んでいるプロジェクトはこのバージョンに組み込まれており、バージョンアップは非常に危険です。すべてを妨害するかもしれないので、アップグレードする最後のオプションになります。助けることができる他の方法はありますか? –

答えて

1

あなたのPHPバージョンは、匿名の機能や閉鎖を知らないようです。 1と名付け使用しよう:

function autoloadGoogleApi($className) { 
    $classPath = explode('_', $className); 
    if ($classPath[0] != 'Google') { 
    return; 
    } 
    // Drop 'Google', and maximum class file path depth in this project is 3. 
    $classPath = array_slice($classPath, 1, 2); 

    $filePath = dirname(__FILE__) . '/' . implode('/', $classPath) . '.php'; 
    if (file_exists($filePath)) { 
    require_once($filePath); 
    } 
} 

spl_autoload_register('autoloadGoogleApi'); 

はまだ、私も指摘したいんだ、そのPHPのバージョンあなたが指定するには、非常に古いあるので、私は本当にをアップグレードするオプションを考慮することが示唆されています。

UPD:3v4l test

+0

問題を修正しましたが、期待通りに他のエラーを出し始めました。アップグレード版は唯一の解決策かもしれません。 5.2版で利用できるライブラリはありますか?私は検索しましたが、まだ何も見つかりませんでした。 –

+0

@UmÄ'rMÄlîk新しいPHPバージョンにパッチを当てる方が良いです。それは苦しいと遅いプロセスかもしれませんが、ライブラリのほとんどはすでにそれをしました。パッチ適用を開始しない場合は、バージョンの互換性の問題が発生します。考慮してください。 – BlitZ

関連する問題