当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。
如存在一个类:
class ConfigProvider
{
public function __invoke(): array
{
return [
'annotations' => [
'scan' => [
'paths' => [
__DIR__ . '/Commands',
],
],
],
];
}
}
那么,我们就可以通过函数方式调用一个对象:
$provider = (new ConfigProvider())();
此时$provider的值就是ConfigProvider::__invoke()的返回值。
关于PHP魔术方法的链接:https://www.php.net/manual/zh/language.oop5.magic.php