本文所用 php 源码版本为 7.1.33
在 php 源码目录下的 main/php.h 头文件中定义了宏 PHP_FUNCTION
,
我们经常使用的 php 函数就是她来定义的,
从上图中可以看到该宏定义为 ZEND_FUNCTION
,
而 ZEND_FUNCTION
定义在 Zend/zend_api.h 头文件中,
在 C 语言宏定义中的 ## 代表连接在其左右的字符串。
由上图中可以看到该宏的定义最终落在宏 INTERNAL_FUNCTION_PARAMETERS
上,
其中,zend_execute_data
为结构体 _zend_execute_data
的别名,见下图,