PHP 8.4: PHP_ZTS 和 PHP_DEBUG 常量值类型从整型修改为布尔型
PHP_ZTS
和 PHP_DEBUG
是提供当前 PHP 运行时信息的两个全局常量。
PHP_ZTS
: 说明当前的 PHP 编译是否是线程安全。与ZEND_THREAD_SAFE
常量是同样的值。PHP_DEBUG
: 说明当前的 PHP 编译版本是不是 debug 版本。与ZEND_DEBUG_BUILD
值相同。
在 PHP 8.4 之前,这两个常量包含整型值:禁用为 0
,启用为 1
。自 PHP 8.4 起,它们改为布尔值。
向后兼容性影响
更新后的值仍然是“真值”和“假值”,并且不区分类型的比较(如 1==true
和 0==false
)即使在发生此更改后也将继续工作。
使用与 PHP_ZTS
和 PHP_DEBUG
常量进行严格比较的应用需要在 PHP 8.4 中进行这种类型的更改。
同时兼容 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
常量替代。
- if (PHP_ZTS === 1) {}
+ if (ZEND_THREAD_SAFE) {}
- if (PHP_DEBUG === 1) {}
+ if (ZEND_DEBUG_BUILD) {}