PHP 8.4: Тип констант PHP_ZTS и PHP_DEBUG изменён с int на bool

Источник: «PHP 8.4: PHP_ZTS and PHP_DEBUG constant value type changed from int to bool»
PHP 8.4: Тип значения констант PHP_ZTS и PHP_DEBUG изменён с int на bool.

PHP_ZTS и PHP_DEBUG — две глобальные константы PHP, предоставляющие информацию о текущем времени выполнения PHP.

До версии PHP 8.4 эти две константы содержали целочисленные значения: 0, когда отключено, и 1, когда включено. В PHP 8.4 и более поздних версиях они стали содержать логические значения.

Влияние на обратную совместимость

Обновлённые значения по-прежнему являются "истинными" и "ложными", и нечувствительные к типу сравнения, такие как 1 == true и 0 == false, будут продолжать работать даже после этого изменения.

Приложения, использующие строгие сравнения с константами PHP_ZTS и PHP_DEBUG, должны будут учесть это изменение типа в PHP 8.4.

Для совместимости с PHP 8.4 и более старыми версиями:

-if (PHP_ZTS === 1) {}
+if (PHP_ZTS === 1 || PHP_ZTS === true) {}

`if (PHP_DEBUG === 1) {}
+if (PHP_DEBUG === 1 || PHP_DEBUG === true) {}

Только для PHP >= 8.4:

-if (PHP_ZTS === 1) {}
+if (PHP_ZTS) {}

-if (PHP_DEBUG === 1) {}
+if (PHP_DEBUG) {}

В качестве альтернативы константы PHP_ZTS и PHP_DEBUG можно заменить на константы ZEND_THREAD_SAFE и ZEND_DEBUG_BUILD, содержащие одинаковые значения в виде логических чисел для всех версий PHP.

-if (PHP_ZTS === 1) {}
+if (ZEND_THREAD_SAFE) {}

-if (PHP_DEBUG === 1) {}
+if (ZEND_DEBUG_BUILD) {}

Дополнительные материалы

Предыдущая Статья

PHP 8.4: Стоимость Bcrypt по умолчанию изменена с 10 на 12

Следующая Статья

PHP 8.4: Opcache: Изменения в INI, влияющие на включение JIT