Re: ZEND_FETCH_RESOURCE mystery
| From: | Markus Fischer | Date: | Wed, 05 Jun 2002 02:59:07 +0000 |
| Subject: | Re: ZEND_FETCH_RESOURCE mystery | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-84868@lists.php.net to get a copy of this message | ||
Hi,
On Tue, Jun 04, 2002 at 10:21:09PM -0400, fabwash wrote :
> i'm trying to use ZEND_FETCH_RESOURCE so I can use macros
> instead of other stuff, but i can't figure out how to use it.
>
> I have the following php code:
>
> $blah = new Blah();
> $blah->doSomething();
>
> When Blah() is called, I want to create a structure and store it as a resource:
>
> typedef struct {
> int zoo;
> long blurb;
> } blah_struct;
>
> blah_struct *blah;
>
> I register my resource:
>
> ZEND_REGISTER_RESOURCE(result_returned, &blah, le_blahresource);
>
> In "doSomething" I want to get my resource back, so I try to do:
>
> ZEND_FETCH_RESOURCE(blah, blah_struct *, ????????, "blah", le_blahresource);
???????? is supposed to be a zval** of IS_RESOURCE which
contains the rsrc_id to fetch from the resource list.
> This 3rd parameter is a mystery. I checked other modules, and
> they pass a zval taken from user input, but in my case, I don't
> have user input, I just want to get my structure back. What am
> I supposed to pass as the 3rd parameter?? I tried passing a
> reference to the Blah() object, but that didn't work.
>
> I found a workaround, using zend_list_insert and
> zend_list_find, but I guess I should be able to use
> ZEND_REGISTER and ZEND_FETCH, no?
zend_list_find is ok, but you have to store the rsrc_id
somewhere. Take a look at ext/domxml which which stores
resources within objects ( php_dom_set_object() ).
- Markus
--
GnuPG Key: http://guru.josefine.at/~mfischer/C2272BD0.asc
Did I help you? http://guru.josefine.at/wish_en
Konnte ich helfen? http://guru.josefine.at/wish_de