Итак, я только что прочитал Почему никогда не использовать "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)