+#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 *qs = zend_read_property(Z_OBJCE_P(getThis()), getThis(), ZEND_STRL(prop), 0 TSRMLS_CC); \
+ \
+ INIT_PZVAL(&mn); \
+ array_init(&mn); \
+ Z_ADDREF_P(qs); \
+ add_next_index_zval(&mn, qs); \
+ add_next_index_stringl(&mn, ZEND_STRL("get"), 1); \
+ zend_fcall_info_init(&mn, 0, &fci, &fcc, NULL, NULL TSRMLS_CC); \
+ zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args); \
+ zend_fcall_info_argp(&fci TSRMLS_CC, ZEND_NUM_ARGS(), args); \
+ zend_fcall_info_call(&fci, &fcc, &rv, NULL TSRMLS_CC); \
+ zend_fcall_info_args_clear(&fci, 1); \
+ efree(args); \
+ zval_dtor(&mn); \
+ RETVAL_ZVAL(rv, 0, 1); \
+ } while(0);
+
+PHP_METHOD(HttpEnvRequest, getForm)