== - нестрогое сравнение: PHP приводит типы перед сравнением. === - строгое сравнение: проверяет и значение, и тип.
0 == "foo" // true в PHP 7, false в PHP 8
0 == "" // true в PHP 7, false в PHP 8
"" == null // true
"0" == false // true
"0" == null // false
0 === "0" // false (int !== string)
1 === true // false (int !== bool)
null === false // false
Всегда используйте === если не нужно намеренное приведение типов. Аналогично, !== вместо !=. В PHP 8 сравнение 0 == "foo" изменилось (теперь false), но == все равно опасен.