PHP 8.4: Тип констант PHP_ZTS и PHP_DEBUG изменён с int на bool
PHP_ZTS
и PHP_DEBUG
— две глобальные константы PHP, предоставляющие информацию о текущем времени выполнения PHP.
PHP_ZTS
: Указывает, является ли текущая сборка PHP потоко-безопасной (thread-safe). То же значение, что и константаZEND_THREAD_SAFE
.PHP_DEBUG
: Указывает, является ли текущая сборка PHP отладочной (debug-build). То же значение, что иZEND_DEBUG_BUILD
.
До версии 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) {}