Использовать троичный оператор для проверки успешной вставки в базу данных?

Является ли приемлемой практика использования троичного оператора 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();

(или, в качестве альтернативы, троичная версия, с которой я согласен, особенно трудно читать, особенно в этом случае)

0

Решение

В данном конкретном случае нет, это не приемлемо. 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
}
1

Другие решения

По моему мнению, никогда не стоит использовать троичный оператор. Правильные условия всегда легче читать и понимать.
Дебаты продолжаются.

0

По вопросам рекламы [email protected]