== сравнивает с приведением типов; === требует равенства значения и типа без жонглирования.
Разбор
- 0 == "0" истинно, но 0 === "0" ложно.
- Для идентичности объектов смотрите также spl_object_id.
- В условиях предпочитайте ===.
- null, false, 0, "" легко путаются при ==.
Итог
Для предсказуемости почти всегда используйте ===.