Sobes.tech
Back to questions
Middle+
24

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."

Companies where asked
Росэлторг

Answer from AI

sobes.tech AI

В этом коде происходит следующее:

  1. Функция format принимает элемент массива по ссылке, преобразует его в верхний регистр и добавляет точку.
  2. array_walk применяет эту функцию ко всем элементам массива $shopping, изменяя их на месте.
  3. Затем вызывается sort($shopping). Важно: функция sort возвращает булево значение (true/false), а не отсортированный массив.
  4. В строке $shopping = sort($shopping); переменной $shopping присваивается результат sort, то есть true (1).
  5. Далее пытаются вывести $shopping[1], но $shopping теперь — булево значение, а не массив.

Поэтому:

  • Вывод будет пустым (ничего не выведется), так как $shopping — не массив.

Правильный ответ: B ничего (нет вывода).


Если исправить код, убрав присваивание результата sort:

array_walk($shopping, "format");
sort($shopping);
echo $shopping[1];

Тогда массив будет отсортирован, и выведется второй элемент отсортированного массива с точкой и в верхнем регистре.