Пытаюсь врубиться, как работает преобразование типов данных, чтобы статически выводить типы. Можно же понять, какой тип получится в выражении? Если пойму, тогда можно будет отлавливать ошибки присвоения
- При
$string + number оператор превращает number в строку и соединяет ее со $string
- При
number + $string пытается превратить $string в числовой тип, если не получается, тогда пишет выбивает ошибку несоответствия типов данных
Получается, что общий принцип для бинарных операторов такой: первый_тип ○ второй_тип -> первый_тип.