@karach0

Класс как аргумент функции, как это использовать?

Не совсем понимаю, как работает передача в аргументы анонимной функции.

Скажем, в 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();
}


Примеров много еще могу привести, главное, чтобы вы поняли суть вопроса

Собственно, вопрос: что это вообще такое, как гуглить, где читать? Будет неплохо, если будут примеры или толковые объяснения. Есть подозрения, что это как-то связано с паттернами проектирования.
  • Вопрос задан
  • 1770 просмотров
Пригласить эксперта
Ответы на вопрос 5
Это означает, что переменная $table - должна быть экземпляром класса Blueprint.
Почитать об этом можно здесь: https://www.php.net/manual/ru/functions.arguments.php
Ответ написан
Комментировать
@porozhnyy
Есть подозрения, что кто-то не читал доку по PHP.
Ответ написан
Комментировать
@webdevium
di, reflection, type hinting, теги все равно никто не читает
Ответ написан
Комментировать
qonand
@qonand
Software Engineer
что это вообще такое, как гуглить, где читать?

Это обычная функция обратного вызова реализованная через анонимную функцию. Гуглить соответственно по словам "функция обратного вызова", "Анонимная функция". Читать статьи в интернете, книги по основам программирования ...
Будет неплохо, если будут примеры или толковые объяснения

Ищите в интернете, по этой теме не мало материалов есть. Или запишитесь на какие-нибудь толковые курсы по основам программирования на которых Вам и объяснят и примеры приведут
Есть подозрения, что это как-то связано с паттернами проектирования.

Еще раз - это основы и они имеют такое же отношения к паттернам как и циклы, условия и т.п. т.е. никакое.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы