Я думаю, что документация либо неверна, либо плохо сформулирована.
Смотрите этот сайт, где он погрузился в исходный код ...
https://gynvael.coldwind.pl/?id=492
Оператор в основном работает в два этапа:
- Если оба операнда относятся к типу, которому функция сравнения знает, как их сравнивать.Это поведение включает следующие пары типов (обратите внимание, что оператор равенства симметричен, поэтому сравнение A с B такое же, как с B против A):
• LONG vs LONG
• LONG vs DOUBLE (+ symmetrical)
• DOUBLE vs DOUBLE
• ARRAY vs ARRAY
• NULL vs NULL
• NULL vs BOOL (+ symmetrical)
• NULL vs OBJECT (+ symmetrical)
• BOOL vs BOOL
• STRING vs STRING
• and OBJECT vs OBJECT
Если пара типов отсутствует в приведенном выше списке, функция compare_function пытается привести операнды к типу второго операнда (в случае OBJECT с обработчиком cast_object), приведенному к BOOL (если второй типлибо NULL или BOOL), либо приведение к LONG или DOUBLE в большинстве других случаев.После приведения функция сравнения повторяется.
См. Мой PHP оператор равенства == справочная таблица для подробностей каждого конкретного случая.