Задать вопрос
BeingZepp
@BeingZepp
Лучший друг добрых хоббитов

Как получился такой результат?

Всем привет! Сейчас изучаю php по видео-курсу с youtube. Естественно стараюсь не просто смотреть, хлопая глазками, а разбираться в том, что происходит. Впервые столкнулся с тем, что не могу до конца понять, как получился результат. В целом-то предположительно понимаю, но вот как это получилось чисто технически, не могу до конца врубиться. Объясните, пожалуйста, кому не лень. Я ещё мега нуб, меньше трёх недель изучаю слоника =(
Результат: 20
Вот код:

$sum = function (callable $callback, int|float ...$numbers): int|float {
return $callback(array_sum($numbers));
};

echo $sum('foo', 1, 2, 3, 4); # 20

function foo($element) {
return $element * 2;
}
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
$sum = function (callable $callback, int|float ...$numbers) — функция принимает другую функцию, какую сделаете и передадите, такая и прийдет (что логично?)

$sum('foo', 1, 2, 3, 4) — тут немного особенностей PHP, если вызывать как callable строку, то будет вызываться функция с значением из строки в качестве названия, также если как callable вызывать массив с [$obj, 'foo', 1, 'Maks'],
то будет вызов метода у объекта $obj->foo(1, 'Maks')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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