+#define call_querystring_get(prop) \
+ do {\
+ zend_fcall_info fci; \
+ zend_fcall_info_cache fcc; \
+ zval rv, mn, *args = ecalloc(sizeof(zval), ZEND_NUM_ARGS()); \
+ zval *this_ptr = getThis(); \
+ zval qs_tmp, *qs = zend_read_property(Z_OBJCE_P(this_ptr), this_ptr, ZEND_STRL(prop), 0, &qs_tmp); \
+ \
+ ZVAL_NULL(&rv); \
+ array_init(&mn); \
+ Z_TRY_ADDREF_P(qs); \
+ add_next_index_zval(&mn, qs); \
+ add_next_index_stringl(&mn, ZEND_STRL("get")); \
+ zend_fcall_info_init(&mn, 0, &fci, &fcc, NULL, NULL); \
+ zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args); \
+ zend_fcall_info_argp(&fci, ZEND_NUM_ARGS(), args); \
+ zend_fcall_info_call(&fci, &fcc, &rv, NULL); \
+ zend_fcall_info_args_clear(&fci, 1); \
+ efree(args); \
+ zval_dtor(&mn); \
+ RETVAL_ZVAL(&rv, 0, 1); \
+ } while(0);
+
+ZEND_BEGIN_ARG_INFO_EX(ai_HttpEnvRequest_getForm, 0, 0, 0)
+ ZEND_ARG_INFO(0, name)
+ ZEND_ARG_INFO(0, type)
+ ZEND_ARG_INFO(0, defval)
+ ZEND_ARG_INFO(0, delete)
+ZEND_END_ARG_INFO();
+static PHP_METHOD(HttpEnvRequest, getForm)