В PHP при нестрогом сравнении (==) строки с числом происходит преобразование типов для выполнения сравнения. До версии PHP 8, если строка не начиналась с числового значения, она преобразовывалась в 0. Поэтому выражение
0 == «foo» возвращало true, так как обе стороны сравнения становились 0.Однако, начиная с PHP 8, поведение изменилось. Теперь, если строка не является числовой, сравнение с числом возвращает false без преобразования строки в число. Таким образом, в PHP 8 и выше,
0 == «foo» возвращает false.Это изменение направлено на улучшение предсказуемости и безопасности сравнения данных в PHP.