Этот раздел расширяется Когда я/должен использовать __construct(), __get(), __set() и __call() в PHP?, в котором говорится о __construct, __get и __set магические методы.
Начиная с PHP 5.3 появился новый Magic Method под названием __invoke. Метод __invoke вызывается, когда script пытается вызвать объект как функцию.
Теперь, когда я исследовал этот метод, люди сравнивают его с методом Java .run() - см. Интерфейс Runnable.
Подумав долго и трудно об этом я не могу думать о какой-либо причине, почему вы назвали бы $obj();, в отличие от $obj->function();
Даже если вы выполняли итерацию по массиву объектов, вы все равно знаете имя главной функции, которое вы хотите запустить.
Итак, магический метод __invoke еще один пример "только потому, что вы можете, не означает, что вам следует" использовать ярлык в PHP, или есть случаи, когда это действительно будет правильным?