Передача значения NULL во встроенные функции PHP 8.1

PHP 8.1 на сервере.

Получаю строковое значение из таблицы БД (mariaDB):

$db_result = $mysqli->query('SELECT * FROM table1');
$db_result = $db_result->fetch_assoc();
$field1 = trim($db_result['field1']);

Все хорошо, но если запрашиваемое значение из БД равно NULL, то получаю следующее предупреждение:

PHP Deprecated:  trim(): Passing null to parameter #1 ($string) of type string is deprecated in ...

Вытаскивая значение из БД я ожидаю получить строку символов, либо пустую строку (в случае NULL) как в предыдущих версиях PHP.

Где-то вычитал, что в последних версиях передавать встроенным функциям значение NULL запрещается.

Примечательно, что следующий код, никаких предупреждений не выдает:

echo trim(NULL);

Вопрос у меня такой: что предпринять, для того, чтобы NULL из БД интерпретировался как пустая строка? Переписать весь код проекта, добавив дополнительное сравнение на NULL? Может быть в конфиге php можно задать интерпретацию NULL по умолчанию? как?


Ответы (2 шт):

Автор решения: Алексей Шиманский

либо применять пхпшный null coalesce

trim($db_result['field1'] ?? 'DEFAULT_VALUE')

либо Бдшный. Например в постгрес есть COALESCE

→ Ссылка
Автор решения: Eugene X

Забавно <? print trim(NULL); , пых-пых всё правильно решил.

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/user/scripts/code.php on line 1

Исправление:

trim($db_result['field1'] ?? '')

Стоит всё же учитывать что PHP переживает сейчас 4ю фазу, где строгая типизация доминирует над ленивым кодом (LazyCode).

→ Ссылка