Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
<?php
$words = ['pear', 'fig', 'banana'];
usort($words, fn($a, $b) => strlen($a) <=> strlen($b));
echo implode(' ', $words), "\n";fig pear banana
- Ждать, что
usortвернёт отсортированную копию, а$wordsне тронет: он получает массив по ссылке, сортирует его на месте и возвращаетtrue. - Считать, что
$a <=> $bсортирует от большего к меньшему: результат отрицателен, когда$aменьше, и$aвстаёт первым; по убыванию —$b <=> $a.
- Как изменить функцию сравнения, чтобы слова шли от длинных к коротким?
- Что окажется в
$sortedпосле$sorted = usort($words, …)?