PHP · 2024年6月29日 1

PHP魔术方法:__invoke()

当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。

如存在一个类:

class ConfigProvider
{
    public function __invoke(): array
    {
        return [
            'annotations' => [
                'scan' => [
                    'paths' => [
                        __DIR__ . '/Commands',
                    ],
                ],
            ],
        ];
    }
}

那么,我们就可以通过函数方式调用一个对象:

$provider = (new ConfigProvider())();

此时$provider的值就是ConfigProvider::__invoke()的返回值。