Я рад, что PHP пока что не идет по пути "нормальных" языков и буду огорчен, если так случится. Языки тоже должны развиваться. По большому счету это язык, как инструмент, должен обслуживать полет моей творческой фантазии, понимать меня с полуслова. А не я должен удовлетворять его формальные прихоти. Почему я должен загружать программу кодом, напрямую не имеющим отношения к алгоритму? Даже священная корова MVC только для этого и придумана была, чтобы рафинировать бизнесс-алгоритм, сделать его как можно более читабельным и "сопровождабельным". Давайте будем последовательны и писать программы без ненужных системных "завитушек".
Просто нужно взять за парадигму, что отсутсвие переменной равносильно ее наличию с пустым значением. Благо PHP предоставляет такую возможность. Тем более, что в бизнес логике веб приложения никогда не нужно различать факт отсутствия переменной от ее наличия с пустым значением. (Спокойно! Я говорю про бизнес-логику. Системные блоки приложения пишутся в другом стиле.) А если кто и различает такие сущности в бизнес логике, то это результат неправильного планирования.
Да, я тоже иногда допускаю опечатки в именах переменных. Но за многолетний стаж это не приносило мне никаких неудобств. Ошибка выявляется при первом же отладочном прогоне, а поскольку программа "прозрачна" и незагружена лишними деталями, то локализуется элементарно. Я предпочитаю иметь "прозрачный" код, который будет эксплутироваться, сопровождаться и модифицироваться в течение как минимум нескольких лет, вместо того чтобы отяготить его на 20-30% лишним текстом только лишь для сиюминутного удобства кодера.