@tukreb

Почему так себя ведёт функция сравнения в array_udiff?

Добрый день.
Есть такой кусок кода
$compare = static function (InstalledPart $a, InstalledPart $b): int {
            dump($a); //должен быть пуст, но заполнен, и идентичен массиву $b
            dump($b); //заполнен
            //сравниваем и получает 1\-1\0
        };

dump($new); //массив с данными
dump($current); //пустой массив
foreach (array_udiff($current, $new, $compare) as $item) { //current - new => diff to del
            //...
        }


При вызове сравнения (которая по логики вообще не должна срабатывать, т.к $current пустой, вызывается функция сравнения $compare и оттуда выясняется, что $a идентичен $b, хотя должен быть пуст, т.к я туда отправляю пустой массив. Что за магия?

Спасибо..
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
@tukreb Автор вопроса
Вручную добавил запись в БД для $current. И баг пропал, после заново проверил на пустой БД и баг больше не проявлялся.
Не знаю, что это было.
До этого пробовал сбрасывать докер, чистил кэш и разные версии php.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Spice IT Recruitment Москва
До 230 000 ₽
Smart Медицина Москва
от 150 000 ₽
Playkot Санкт-Петербург
от 150 000 до 200 000 ₽
09 июл. 2020, в 00:43
50000 руб./за проект
08 июл. 2020, в 22:59
1000 руб./за проект
08 июл. 2020, в 22:19
27000 руб./за проект