@bitande
PHP

Почему анонимная функция возвращает число а не булево значение?

Почему возвращаются числа а не булевы значения?

<?php

 function criteria_greater_than( $min)
 {
       return function( $item) use ( $min) {
              return $item > $min;  // тут ведь должно быть булево значение
          };
 }

 $input = array( 1 , 2, 3, 4, 5, 6);

 // Используем array_filter на вводе, с указанной функцией фильтром
 $output = array_filter( $input, criteria_greater_than( 3));

 print_r( $output); // значения > 3


Результат

Array
(
    [3] => 4
    [4] => 5
    [5] => 6
)
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
coderisimo
@coderisimo
array_filter - Oбходит каждое значение массива array, передавая его в callback-функцию. Если callback-функция возвращает true, данное значение из array возвращается в результирующий массив.

Что и происходит в вашем случае.

вот тут

return $item > $min;

мы ДЕЙСТВИТЕЛЬНО получаем булево значение, которое и определяет, попадет ли данный элемент массива в результирующий массив.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
romy4
@romy4
Exception handler
а что вы ожидаете?
данный результат коректный
Ответ написан
miraage
@miraage
Старый прогер
array_map($fn, $arr) в данном случае
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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