Условия Йоды


Условия Йоды (от англ. Yoda conditions), или нотация Йоды (англ. Yoda notation) в жаргоне программистов — «безопасный» стиль записи выражений сравнения при программировании на языках с Си-синтаксисом, заключающийся в написании константного члена выражения (константы или вызова функции) слева от оператора сравнения (то есть 5 == a вместо привычного а == 5).

Такой стиль призван предотвратить свойственную данным языкам ошибку — использование операции присваивания «=» вместо сравнения «==». Ошибочное использование присваивания превращает нотацию Йоды в попытку изменить константу, вызывая ошибку на этапе компиляции, что исключает возможность появления в готовой программе ошибок данного вида, а также облегчает их поиск и исправление в новом коде.

Нотация названа в честь магистра Йоды из вселенной «Звёздных войн», имеющего манеру выстраивать слова фразы в обратном порядке.

В классической нотации проверка переменной на равенство некоторой константе записывается следующим образом (пример на языке PHP):

то есть переменная, операция сравнения и константа. Данная конструкция уязвима для известной ошибки:

Такой код остается синтаксически правильным, и при ненадлежащем тестировании может остаться в программе на долгие годы и стать причиной серьёзной уязвимости.