Re: Extensions: parameters as references
| From: | Yasir Malik | Date: | Fri, 17 Jun 2005 22:49:32 +0000 |
| Subject: | Re: Extensions: parameters as references | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-217160@lists.php.net to get a copy of this message | ||
Is there any list (or forum) that can help me with this?
Thanks,
Yasir
On Fri, 17 Jun 2005, Yasir Malik wrote:
Date: Fri, 17 Jun 2005 11:51:24 -0400 (EDT) From: Yasir Malik <ymalik@cs.stevens.edu> To: php-general@lists.php.net Subject: [PHP] Extensions: parameters as references 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", ¶meter) == 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", ¶meter) == FAILURE) return;zval_dtor(parameter); ZVAL_LONG(parameter, 78); } Thanks, Yasir -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php