2

フェッチするリソースのタイプを知らなくても zend リソース ( zend_fetch_resource) をフェッチすることは可能ですか? もしそうなら、どのように?

注: PHP 拡張機能を作成しています。

4

1 に答える 1

2

はい、できます。

zend_fetch_resource受け入れ可能なタイプのリソースを受け取り、見つかったものがそれらのいずれでもない場合は失敗するため、機能しません。

使うだけ

void *zend_list_find(int id, int *type);

リソース zval から id を抽出できますZ_RESVAL(zval)。引数typeには、見つかったリソースのタイプが入ります。

var_dumpただし、クローンを作成する場合を除いて、これはあまり使用されていません。問題は、任意のリソースを取得したら、それをどうするかということです... 一般に、返されたデータ構造については何も知りません。

次のコマンドを使用して、リソースの名前を直接取得できます。

char *zend_rsrc_list_get_rsrc_type(int resource TSRMLS_DC);
于 2010-08-02T07:54:24.990 に答える