I've got some code that wraps objects from an external library. The "glue code" sets a flag when a reference parameter is set by a function; the code in my (ZE1) call handler looks something like this:
if (args[i].isref) { if (!PZVAL_IS_REF(arguments[i])) { php_error(E_WARNING, "%s(): parameter %d was not passed by reference!", Z_STRVAL(function_name->element), i); } SEPARATE_ZVAL_IF_NOT_REF(&arguments[i]); fill_zval_from_arg(arguments[i], &args[i] TSRMLS_CC); arguments[i]->is_ref = 1; arguments[i]->refcount = 2; } arguments is a zval ** populated using zend_get_parameters_array(). args a zval-alike used to talk to the library. Now, if I call my overloaded object like this: $obj->foo(&set_me_please); $set_me_please correctly picks up the value set by the foo function. If I call it like this: $obj->foo($set_me_please); Then I get a warning about the parameter not being passed by reference and $set_me_please ends up (or remains) NULL. Is there any way for the latter case to set $set_me_please, without explicitly using the &? --Wez. -- Wez Furlong The Brain Room Ltd. -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php