是否可以在不知道获取资源类型的情况下获取 zend 资源 (zend_fetch_resource
)?如果是,怎么办?
注意:我正在编写 PHP 扩展。
最佳答案
是的,你可以。
zend_fetch_resource
将无法工作,因为它接收可接受的资源类型,如果找到的资源不是其中之一,则会失败。
就用
void *zend_list_find(int id, int *type);
您可以使用 Z_RESVAL(zval)
从资源 zval 中提取 ID。参数 type
将填充找到的资源类型。
但是,除了可能创建一个 var_dump
克隆之外,我没有看到它有太多用处。问题是,一旦您检索到任意资源,您打算用它做什么?...通常,您对返回的数据结构一无所知。
您可以直接获取资源的名称:
char *zend_rsrc_list_get_rsrc_type(int resource TSRMLS_DC);
关于php - 在不知道资源类型的情况下获取 zend 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3385842/