0

phphint.orgのPSR-0/1/2-構文チェッカーは、このメッセージを表示します

The first parameter of a multi-line function declaration must be on
the line after the opening bracket 

このコードについて:

// class autoloader for PHP 5.3+
spl_autoload_register( function ($class) {
    include('classes/' . $class . '.class.php');
});

私はたくさん試しましたが、この小さなコードPSR-0/1/2-saveを取得することはありませんでした。ソリューションはどのようになりますか(またはphphintのアナライザーは厳しすぎますか?)

4

2 に答える 2

0

マニュアルから:

PHP 5.3.0以降、コールバックパラメータにクロージャを渡すこともできます。

だから、あなたがしていることは私には完全に大丈夫のようです。

phphint.orgがこれに同意するかどうかを確認できます。

$lambda = function ($class) { include('classes/' . $class . '.class.php'); };
spl_autoload_register( $lambda );
于 2012-09-08T15:45:04.943 に答える
0

私はこれを自分で修正しましたが、解決策は非常に醜いです。

spl_autoload_register( function (
    $class
) {
    include('classes/' . $class . '.class.php');
}
);

多分PSR-みんなは彼らの奇妙な構文について考える必要があります。たとえそれが一歩後退したとしても、正しい解決策はこのように見えます。

// autoload function (it's NOT "__autoload", __autoload is
// DEPRECATED since PHP 5.4!)
function autoload($class) {
    include('classes/' . $class . '.class.php');
}

// class autoloader for PHP 5.3+, registers the function that's used if a class/file
// is not found (=autoloader)
spl_autoload_register('autoload');
于 2012-09-08T15:49:15.023 に答える