Всем привет коллеги.
Возник тут спор с коллегой. Я во всех местах, где обращаюсь к элементу массива, привык делать проверку, на то существует ли вообще этот элемент, хотя бы банальную проверку через
[
'a' => $this->someParam['a'] ?? ''
]
Коллега говорит, что плохо код загрязнять лишними проверками. Типа ты и так знаешь, что у someParam всегда есть в массиве ключ 'a'. Мне кажется, что такие надежды на то что есть, а чего нету слишком смелые. С другой стороны уловить ошибку в таком случае сложнее. Допустим, кто-то зачем-то удалил ключ 'a' из массива, а у нас тут идет оператор ?? и просто подпихивает пустую строку. Код работает и ошибки не видно. С другой стороны, если обязательный параметр для передачи куда-то, то можно запихнуть все в dto и там делать проверки любые, валидацию и так далее, кидать грубый эксепшен, если нет нужного в массиве ключа. Но тут коллега опять ворчит, типа еще и dto создавать для такого пустяка. В общем его позиция, что пусть просто падает код и все, если нет нужного ключа в массиве, типа так понятней. Моя позиция что нужно такие вещи обрабатывать как-то.
Что думаете ребята?