物件作為一種功能

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

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

具有 __invoke 方法的物件可以與任何其他函式完全一樣使用。

__invoke 方法可以訪問物件的所有屬性,並且可以呼叫任何方法。