= и ==
В «Паскале» «=» — это сравнение, а присваивание — это «:=». «Паскаль» я изучал в школе и первом семестре университета. Во втором «Паскаль» сменился на «Си». В «Си» «=» — это присваивание, а сравнение — это «==».
Сначала я часто ошибался: писал if (a = 5) вместо if (a == 5).
Потом мне посоветовали, и я стал писать if (5 == a): если по ошибке поставить присваивание, получим ошибку времени компиляции.
Прошло десять лет. Я иногда программирую, но в целом не работаю программистом. Месяцами не смотрю на код ни на каком языке. И теперь конструкция if (5 == a) кажется мне безумно некрасивой; теперь я всегда пишу if (a == 5) и, что самое интересное, никогда не ошибаюсь.
А студентам теперь уже я советую if (5 == a).
Не помню, как я отношусь к «ПХП» с его «===» (сравнение с учётом типа). Давно не писал на нём.