返回对PHP中静态函数的直接引用


return direct reference to static function in PHP

现在要返回对静态函数的引用,我将返回对闭包的引用(在引导函数内部)。闭包只调用静态函数。

class AuthServiceProvider extends ServiceProvider
{
    private static function createEloquentLdapProvider($app) {...}
    public function boot()
    {
        Auth::extend('databaseLdapCredentials', function($app) {
            return self::createDatabaseLdapProvider($app);
        });
    });
}

在C#中,我可以通过名称返回对静态函数的直接引用。我也尝试在PHP中使用函数名:

    public function boot()
    {
        Auth::extend('databaseLdapCredentials', self::createDatabaseLdapProvider);
    });

但它不起作用。PHP认为self::createDatabaseLdapProvider是静态变量(不是对静态函数的引用)。

那么,我如何在PHP中返回对静态函数的直接引用,而不使用闭包,在这种情况下就是拐杖呢?

我认为您有一个错误,您必须将$this用作:

return this->createDatabaseLdapProvider($app);