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) {}
