Одна из причин, почему я делаю это, заключается в предотвращении неожиданного поведения.
Код должен всегда отражать намерение программиста. Если поведение зависит от какого-то загадочного процесса в фоновом режиме, то в конце концов он придет и укусит вас в задницу, когда вы будете глубоко в колене внутри ошибок и отладки.
Традиционно попытка доступа к массиву с отсутствующим ключом вызывает сбой (возможно, в неуправляемой среде) или ошибку. PHP тихо «фиксирует» это в фоновом режиме отлично подходит для новичков, но плохо для отладки. Ваш код будет работать, но может дать вам неожиданный результат.
Возьмем, к примеру, ваш код. Скажите, что вызывающая страница забудет указать top_id или пропустить ее как topid, а PHP продолжает веселиться. Он не включал topic.php, и ничего не происходит. Код работает нормально. PHP не жалуется. Что не так?
Теперь ваш код короткий. Что происходит, когда оно длиннее? Загрязнены глубоко внутри многих линий, между различными функциональными возможностями? Для вашего случая это не имеет большого значения, но при выполнении сложных манипуляций с массивами это усложнит процесс отладки.
Потому что, если он не существует, он просто становится нулевым, и это нормально для меня. Это работает, так почему я должен его менять, вот что я прошу. –