相关疑难解决方法(0)

PHP 内部原理:TSRMLS_FETCH 如何工作?

PHP InternalsTSRMLS_FETCH宏是如何工作的?

根据PHP 手册

在开发扩展时,包含“tsrm_ls 未定义”的构建错误或导致该结果的错误源于 TSRMLS 在当前范围内未定义的事实,要解决此问题,请使用适当的宏声明函数以接受 TSRMLS,如果有问题的函数不能更改,您必须在函数体内调用 TSRMLS_FETCH。

我了解声明函数以使用适当的宏接受 TSRMLS意味着使用TSRMLS_C、TSRMLS_D、TSRMLS_CC 和 TSRMLS_DC来定义或调用具有额外参数/参数的函数。

但是,如果相关函数的原型无法更改,则必须在函数体内调用 TSRMLS_FETCH使我有点困惑。如果我在PHP-SRC看起来既这里这里TSRMLS_FETCH 似乎是一个空的宏。

所以这给我留下了一个问题——它TSRMLS_FETCH是如何工作的?在编译时是否有其他东西填充这个宏?

php c macros php-internals

5
推荐指数
1
解决办法
607
查看次数

标签 统计

c ×1

macros ×1

php ×1

php-internals ×1