Это должны уметь более менее адекватные IDE. Помнится Netbeans такое умел. В Phpstorm по дефолту вроде не работает, но это не точно. Опять же, зависит от контекста.
ilinsky★★★★★ ()
Последнее исправление: ilinsky
(всего
исправлений: 2)
На сколько я помню, он был по дефолту включен в 8.x ветке. Когда переопределяешь переменную, он говорил к конкретному куску кода о том что есть переопределение. Я к сожалению не могу сказать как там сейчас с этим дела.
ilinsky★★★★★ ()
Последнее исправление: ilinsky
(всего
исправлений: 1)
но это же вполне законное присваивание элементу по ключу, как гипотетический линтер должен отделять правомерные на ваш взгляд присваивания от неправомерных?
abcq★★ ()
Последнее исправление: abcq
(всего
исправлений: 1)
Тогда он будет давать такие ворнинги на каждое корректное переприсвоение. Обычно линтеры отлавливают повторное объявление потому что это действительно некорректное поведение скорее всего, а в большинстве языков это вообще в сам язык добавляют даже без линтеров.
Там выше человек правильно написал, проще сделать константой переменную, или как вариант не пользоваться ассоциативным массивом, а пользоваться какой-то другой иммутабельной структурой.
Ну и последний вариант просто погрепать исходники и посмотреть где идет переприсваивание, оно скорее всего где-то рядом.