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。 解决方案的外观如何(或者分析器上的分析器是否过于严格?)?
答案 0 :(得分:0)
来自manual:
从PHP 5.3.0开始,也可以将闭包传递给回调参数。
所以,你所做的事情对我来说似乎完全没问题。
您可以看到phphint.org是否同意:
$lambda = function ($class) { include('classes/' . $class . '.class.php'); };
spl_autoload_register( $lambda );
答案 1 :(得分: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');