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