Задать вопрос
@Vladimir-Hetman

Функция работает без указания аргумента?

Функция, которая лежит в переменной $positive_num
работает без указания аргумента.
То есть, при вызове этой функции мы не устанавливаем аргумент,
а она работает. Как это понимать?

Ведь учебники меня учили, если в функции есть аргумент,
то при ее вызове обязательно нужно установить этот самый аргумент.

function sum(array $numbers, callable $condition){
  
  $result = 0;
  
  foreach($numbers as $number){  
    if($condition($number)){
    $result += $number; 
    }
  }
  
return $result;
}
 
 
$positive_num = function($n){  // функция, где нужно указать аргумент "$n"
return $n > 0;
};
 
 
$array = [-2, -1, 0, 1, 2, 3, 4, 5];
 
$result = sum($array, $positive_num); // вызов этой функции, но здесь мы не указали аргумент, так почему она работает?
echo $result;
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
@basili4-1982
Так в чем противоречие.
Вот тут передаете аргумент
if($condition($number)){

Не путайте передачу функции и ее вызов, для вызова надо указывать ()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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