《PHP扩展开发》--RETURN_*宏的使用

RETURN_FALSE宏为例,我们展开后得到:

1
2
3
4
5
#define RETURN_FALSE  					{ RETVAL_FALSE; return; }
#define RETVAL_FALSE ZVAL_FALSE(return_value)
#define ZVAL_FALSE(z) do { \
Z_TYPE_INFO_P(z) = IS_FALSE; \
} while (0)

所以,RETURN_FALSE的作用就是把return_value这个扩展函数的返回值设置为false,然后再执行C语言的return;,从而跳出扩展函数。所以,RETURN_FALSE后面是不需要分号结尾的。(当然,写了也没事)