casper - ggАнонимные функции штука хорошая, правда не часто встречаются в повседневной жизни =)
Что бы понять нафига они нужны, нужно столкнуться с задачей, где бы они пригодились.
Так что если сейчас не понимаешь, потом, когда понадобятся сразу поймёшь.
Например сделай библиотеку событий, в которой можно регистрировать обработчик событий и собственно запускать само событие.
К примеру у тебя есть класс для работы с новостями.
class News {
protected $Handler;
public function __construct (Handler $Handler) {
$this->Handler = $Handler;
}
public function add ($content) {
$this->Handler->event('news.add', $content);
}
}
Ты хочешь это событие как то обработать, может записать в лог, оповестить админа по почте или даже поменять $content
Регистрируешь обработчик события.
$Handler = new Handler();
$Handler->add('news.add', function (&$content) {
$content = 'Другой контент';
});
$News = new News($Handler);
$News->add('Привет');
А вообще ты с DIC хотел разобраться, там используются анонимные функции.
Типа так
$DI = new DI();
$DI->set('News', function () {
return new News();
});
$News = $DI->get('News');
$News->add('Привет');
Или допустим ты хочешь что бы $DI->get('News'); всегда возвращал объект с какой то настройкой по умолчанию, что бы каждый раз не настраивать.
$DI = new DI();
$DI->set('News', function () {
$News = new News();
$News->config([
'table' => 'news',
'limit' => 30,
'sort' => 'DESC'
]);
return $News;
});
$News = $DI->get('News');
$News->add('Привет');
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2