Extensions: parameters as references

From: Date: Fri, 17 Jun 2005 15:51:24 +0000
Subject: Extensions: parameters as references
Groups: php.general 
Request: Send a blank email to php-general+get-217138@lists.php.net to get a copy of this message
I am creating a PHP extension. In my function, I want the parameter to be a reference. The extension function works fine only if the variable passed is initialized. For example, here is the extension function: ZEND_FUNCTION(first_module) { zval *parameter; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                             "z", &parameter) == FAILURE)
       return;
ZVAL_LONG(parameter, 78); } When I call this as <?php dl("test.so"); $a = 4; first_module($a); print "$a\n"; ?> it works fine, but when I call it as: <?php dl("test.so"); first_module($a); print "$a\n"; ?> nothing is outputted. I looked at the source code for various extensions, and I noticed that they called the deconstructor zval_dtor(). I tried this, but it still did not work: ZEND_FUNCTION(first_module) { zval *parameter; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                             "z", &parameter) == FAILURE)
       return;
zval_dtor(parameter); ZVAL_LONG(parameter, 78); } Thanks, Yasir

« previous php.general (#217138) next »