Назад к вопросам
Middle+
25
What is the output of the following code? <?php function format(&$item) { $item = strtoupper($item) . '.'; return $item; } $shopping = array("fish", "bread", "eggs", "jelly", "apples"); array_walk($shopping, "format"); $shopping = sort($shopping); echo $shopping[1]; A "BREAD." B nothing (no output) C "apples" D "fish" E "APPLES."
Компании, где спрашивали
Росэлторг
Ответ от нейросети
sobes.tech AI
В этом коде происходит следующее:
- Функция
formatпринимает элемент массива по ссылке, преобразует его в верхний регистр и добавляет точку. array_walkприменяет эту функцию ко всем элементам массива$shopping, изменяя их на месте.- Затем вызывается
sort($shopping). Важно: функцияsortвозвращает булево значение (true/false), а не отсортированный массив. - В строке
$shopping = sort($shopping);переменной$shoppingприсваивается результатsort, то естьtrue(1). - Далее пытаются вывести
$shopping[1], но$shoppingтеперь — булево значение, а не массив.
Поэтому:
- Вывод будет пустым (ничего не выведется), так как
$shopping— не массив.
Правильный ответ: B ничего (нет вывода).
Если исправить код, убрав присваивание результата sort:
array_walk($shopping, "format");
sort($shopping);
echo $shopping[1];
Тогда массив будет отсортирован, и выведется второй элемент отсортированного массива с точкой и в верхнем регистре.