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

Reply via email to