這里閱讀的php版本為PHP-7.1.0 RC3,閱讀代碼的平臺為linux。

我們研究下反射這個擴展。

反射這個擴展目錄是存在在:ext/reflection。其實里面的代碼很簡單。一個.h文件,一個 .c文件。

我們先看下.c文件中,會看到很多ZEND_METHOD

ZEND_METHOD(reflection_function, getReturnType){
     ...
}

對應(yīng)的宏:

#define ZEND_METHOD(classname, name)     ZEND_NAMED_FUNCTION(ZEND_MN(classname##_##name))#define ZEND_NAMED_FUNCTION(name)          void name(INTERNAL_FUNCTION_PARAMETERS)#define ZEND_MN(name) zim_##name#define INTERNAL_FUNCTION_PARAMETERS zend_execute_data *execute_data, zval *return_value

這里的##代表的是連接,展開實際上就是:

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式