zend_fetch_resource
是否可以在不知道获取资源类型的情况下获取 zend 资源( )?如果是这样,怎么做?
注意:我正在编写 PHP 扩展。
zend_fetch_resource
是否可以在不知道获取资源类型的情况下获取 zend 资源( )?如果是这样,怎么做?
注意:我正在编写 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);