#php
#php
Вопрос:
У меня есть функция для проверки, было ли введено значение, а затем очистки входных данных.
Если значение не было опубликовано, оно возвращает false .
function post($key)
{
if(isset($_POST[$key]) amp;amp; $_POST[$key] !== false)
{
return str_ireplace("'", "''", filter_input(INPUT_POST, $key, FILTER_SANITIZE_STRING));
}
return false;
}
Это работает, когда вы делаете это
$foo = post('foo');
И, похоже, работает с перебоями при использовании его подобным образом в среде IIS SQL Server
post('foo') ?? $existingRecord->bar
Когда мы не публикуем foo, мы должны сохраняться $existingRecord->bar
, но иногда вместо этого мы сохраняем пустую строку.
Есть ли что-то принципиально неправильное в моей post()
функции?
Комментарии:
1.
??
имеет ли оператор объединения дело сnull
, но не с логическими значениями2. @Alex понял это с трудом. Спасибо 🙂
Ответ №1:
С моей функцией было что-то в корне неправильное.
Я должен return null;
вместо return false;
Изменив его на null
исправил все.