Получить NaN в результате деления на ноль, а не исключение и прерывание скрипта?
Имели сервер с php 7.4. В скрипте возникала ошибка деления на ноль и в результат вычисления выдавал Nan. И это как бы устраивало.
Теперь сервер с php 8.1. При возникновении ошибки деления на ноль скрипт прерывается и выдает в логах сервера
PHP Fatal error: Uncaught DivisionByZeroError: Division by zero in ...
Как сделать так, чтобы при делении на ноль в результат уходило NaN и скрипт не прерывался? Прежде всего интересует? может есть какие-то настройки в php.ini? И достаточно их поменять, чтобы не лезть в скрипт?
miner2100, дам не очень приятный ответ. Можно просмотреть историю изменений каждого релиза, 7.5, 7.6 и т.д.
Но это наверняка будет очень много инфы. Тем более это мажорная версия (то есть обратно несовместимая) с 7 на 8
Например в Python 2.Х.Х писалось print "Hello World"
А в Python 3.Х.Х пишется print("Hello World")
Наверняка это не единственно изменение и их будет достаточно много
miner2100, Смотрите здесь: https://www.php.net/manual/en/appendices.php
Самый главный раздел в каждом обновлении - Backward incompatible changes, те изменения, которые ломают обратную совместимость. Но по вашему случаю упоминания нет, модно только предположить, что изменение связано с введением в 8.0 функции fdiv, которая возвращает INF при делении на ноль.
Проверить поведение кода в разных версиях можно в песочнице (https://onlinephp.io/c/9d6fb)