Почему моя пользовательская функция POST работает с перебоями в IIS с SQL Server?

#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 исправил все.