Как изящно умереть?

Итак, я только что прочитал Почему никогда не использовать "or die".

Я запутался больше, чем когда-либо. Я проверяю сложную форму и прохожу через множество вложенных уровней операторов if, а что нет, и передаю переменную в форму, которая называется $ status, которая может быть только «новой» или «редактировать». Затем, когда пользователь отправляет форму для повторной проверки, форма передает значение $ status как скрытое поле ($ _POST). Я хочу убедиться, что пользователь не может случайно изменить это, поэтому я хочу поймать ошибку, если пройдет что-то другое, кроме 'new' или 'edit'. (Хотя я хотел бы полностью исключить возможность воздействия пользователя на эту переменную в идеальном мире.)

Итак, я решил, что буду использовать DIE () в операторе if


    Select ($status){
        Case 'edit':
            break;
        Case 'new':
            break;
        default:
            //using example from article
            trigger_error("An error that should not occur has occurred", E_USER_ERROR);
            break;
    }

Я действительно не понимаю, как это чище, чем die ()? По сути, я хотел бы вызвать другую функцию, которая отображает пользователю некоторые варианты того, что они могут сделать на этом этапе, чтобы исправить ошибку, но я хочу, чтобы код полностью прекратил работу, поскольку я не хочу, чтобы оператор if продолжал анализ что-нибудь и генерирует ошибку, когда находит что-то, кроме 'new' или 'edit'.

I ' (или еще лучше, можно ли взломать скрытое пользовательское поле? Как предотвратить?: P)

5
задан Mallow 24 March 2011 в 21:04
поделиться