У меня есть следующий код, создающий массив и пытающийся сбросить/умереть первый элемент
$huh = [15,30];
dd($huh[0]);
С PHP 8.1 и Laravel 9.2:
При использовании в контроллере будет правильно выводить 15
Когда я использую его в тестовом методе или обычном классе, он выводит весь массив (то же самое, если я использую эхо):
^ array:2 [
0 => 15
1 => 30]
С PHP 8.1, Laravel 8.83.2
Я чувствую, что схожу с ума. Я не понимаю, что происходит. Кто-нибудь может помочь?
Обновление: кажется, что это касается запуска тестов. Он работает в контроллере, потому что я вывожу в браузер. Это не работает, когда я запускаю код через тест (PHPUnit). До сих пор не знаю, почему.
Обновление 2: Итак, я импортировал:
use Tests\TestCase;
Но когда я перешел на
use PHPUnit\Framework\TestCase;
Тесты правильно выдавали 15. До сих пор не знаю, почему. Но, может быть, я просто держусь подальше от Tests\TestCase; (У меня такое ощущение, что это может быть из предыдущей версии Laravel и больше не используется).
Итак, я считаю, что проблема была в том, что я импортировал
use Tests\TestCase;
И нет:
use PHPUnit\Framework\TestCase;
Похоже, что Tests\TestCase, возможно, был из старой версии laravel и несовместим с Laravel 9.2. Кадры кажутся странным поведением.
Обновление: Итак, Tests\TestCase все еще используется в Laravel 9.2, но он используется для функциональных тестов, а не для модульных тестов. Все еще не уверен, почему импорт его в модульный тест может вызвать такое поведение.