Является ли приемлемой практика использования троичного оператора PHP для проверки успешной вставки в базу данных (или, в более общем случае, возвращаемого значения любой функции)? Руководство по PHP, похоже, осторожно относится к сложенным троичным операторам, и у меня есть некоторые встроенные в мой writeData
функция.
#pseudocode variables to give context
$conn = new PDO("mysql:host=localhost;dbname=blah", $user, $pass);
$form = sanitize($_POST);
#writeData returns true on success, false if PDO exception
#do nothing on success, warn if otherwise
writeData($conn, $form) ? : exit("Problem writing data to database.");
я вообще-то try
& catch
в writeData
функция. Я еще не выводил страницы с ошибками. Предполагая, что я напишу код страницы ошибки и выведу его следующим в catch
блок из writeData
это лучше сделать:
if(!writeData($conn, $form)) die();
(или, в качестве альтернативы, троичная версия, с которой я согласен, особенно трудно читать, особенно в этом случае)
В данном конкретном случае нет, это не приемлемо. or die
это способ борьбы с ошибками 2000 года, с 2015 года вы должны использовать исключения (вот для чего они нужны):
try {
writeData($conn, $form);
} catch(PDOException $e) {
// try to recover, if possible
// log the error
// give the user a nicely formatted error page
}
По моему мнению, никогда не стоит использовать троичный оператор. Правильные условия всегда легче читать и понимать.
Дебаты продолжаются.