PHP的内核中,可以通过return_value_used值来判断一个内核函数的返回结果是否被使用,下面是一个简单测试代码
ZEND_FUNCTION(sample_array_range)
{
if (return_value_used) {
int i;
//把返回值初始化成一个PHP语言中的数组
array_init(return_value);
for(i = 0; i < 1000; i++)
{
//向retrun_value里不断的添加新元素,值为i
add_next_index_long(return_value, i);
}
return;
}
else
{
//抛出一个E_NOTICE级错误
php_error_docref(NULL TSRMLS_CC, E_NOTICE,"猫了个咪的,我就知道你没用我的劳动成果!");
RETURN_NULL();
}
}
简简单单就可以从扩展层面知道PHP扩展函数的返回值是否被真正的调用者使用了