Есть ли возможность использовать оператор объединения нулей И эхо в одном выражении, например:
echo htmlspecialchars($_POST['email']) ?? '';
Как короткая форма
if (isset($_POST['email'])) {
echo htmlspechars($_POST['email']);
}
Есть идеи?
Нулевой оператор объединения не испускает E_NOTICE
когда параметр не определен.
Так что вы могли бы сделать $email = htmlspecialchars($_POST['email'] ?? '');
Обратите внимание, что нулевой оператор объединения применяется к переменная ($_POST['email']
) а также не к результату htmlspecialchars()
,
Если вы хотите использовать условный троичный оператор (?:
), тогда вам нужно проверить, установлена ли переменная, прежде чем работать с ней.
if ( isset($_POST['email']) ) {
$email = htmlspecialchars($_POST['email'] ?: '');
}
Обратите внимание, что isset()
будет TRUE
если переменная установлено (или, другими словами, это определенный и имеет значение, отличное от NULL
).
Других решений пока нет …