フェッチするリソースのタイプを知らなくても zend リソース ( zend_fetch_resource
) をフェッチすることは可能ですか? もしそうなら、どのように?
注: PHP 拡張機能を作成しています。
フェッチするリソースのタイプを知らなくても zend リソース ( zend_fetch_resource
) をフェッチすることは可能ですか? もしそうなら、どのように?
注: PHP 拡張機能を作成しています。
はい、できます。
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);