如何写入此自动加载器PSR-0/1/2保存



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保存的这段小代码。解决方案会是什么样子(或者phphint上的分析器太严格了?)?

来自手册:

从PHP 5.3.0开始,还可以向回调参数传递闭包

所以,你所做的对我来说似乎完全正确。

你可以看看phphint.org是否同意这一点:

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

我自己解决了这个问题,但解决方案非常糟糕。

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');

相关内容

  • 没有找到相关文章

最新更新