Hello D.,
you are looking for ZEND_BEGIN_ARG_INFO_EX(), the names of the macro
parameters are self speaking.
best regards
marcus
Friday, May 26, 2006, 10:45:19 PM, you wrote:
> All,
> Back on the topic of trying to write a 'filled' function in an
> extension, I have run into trouble. I have declared a function as follows:
> ---------- 8< -------------------- 8< ----------
> static
> ZEND_BEGIN_ARG_INFO(all_args_prefer_ref, ZEND_SEND_PREFER_REF)
> ZEND_END_ARG_INFO()
> zend_function_entry shorthand_functions[] = {
> PHP_FE(filled, all_args_prefer_ref)
> {NULL, NULL, NULL} /* Must be the last line in
> shorthand_functions[] */
> };
> PHP_FUNCTION(filled)
> {
> RETURN_TRUE;
> }
> ---------- 8< -------------------- 8< ----------
> Then, in PHP I try the following test code:
> ---------- 8< -------------------- 8< ----------
> <?php
> $x = array();
> $x["dog"] = "spot";
> $x["cat"] = "moriss";
> print_r($x);
> // testing
> print filled("testing", $x["pig"], $y->testing);
> print "\n";
> print_r($x);
> print_r($y);
?>>
> ---------- 8< -------------------- 8< ----------
> Unfortunately, $x now contains a 'pig' key and the non-existent $y has
> been transformed into an object:
> ---------- 8< -------------------- 8< ----------
> Array
> (
> [dog] => spot
> [cat] => moriss
> )
> 1
> Array
> (
> [dog] => spot
> [cat] => moriss
> [pig] =>
> )
> stdClass Object
> (
> [testing] =>
> )
> ---------- 8< -------------------- 8< ----------
> Is there a way to define the parameters which an extension's function
> will accept to be optionally set? The prefer-by-ref I am using is
> making the var exist even when I don't want it to.
> Dante
Best regards,
Marcus
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php