对象作为一种功能

class SomeClass {
    public function __invoke($param1, $param2) {
        // put your code here
    }
}

$instance = new SomeClass();
$instance('First', 'Second'); // call the __invoke() method

具有 __invoke 方法的对象可以与任何其他函数完全一样使用。

__invoke 方法可以访问对象的所有属性,并且可以调用任何方法。