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