Не совсем понимаю, как работает передача в аргументы анонимной функции.
Скажем, в Laravel в классе Schema в качестве аргумента передаётся класс Blueprint
Schema::create(..., function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->nullable();
$table->string('password')->nullable();
$table->string('provider');
$table->string('provider_id');
$table->rememberToken();
$table->timestamps();
});
Schema каким-то образом передаёт в переменную $table свойства Blueprint и позволяет выполнять в теле анонимной функции свои методы.
В обработчике ошибок так же есть нечто похожее на то, что я показал выше
try {
thisFunctionDoesNotEvenExist(); //ЭтаФункцияДажеНеСуществует()
} catch (\EngineException $e) {
// Подчищаем за собой и записываем информацию об ошибке в лог
echo $e->getMessage();
}
Примеров много еще могу привести, главное, чтобы вы поняли суть вопроса
Собственно, вопрос: что это вообще такое, как гуглить, где читать? Будет неплохо, если будут примеры или толковые объяснения. Есть подозрения, что это как-то связано с паттернами проектирования.