【发布时间】:2010-07-29 09:21:45
【问题描述】:
每个 PHP 实例的 PHP 资源 ID 是否唯一?将各种资源转换为字符串是否会返回“Resource id #X”(其中X 是一些十进制数)?有没有返回资源ID的函数(我知道get_resource_type()获取资源类型,但没有找到类似get_resouce_id()的东西),还是必须这样做?
function get_resource_id($resource)
{
return is_resource($resouce)
? substr((string) $resource, 13 /* strlen("Resource id #") */)
: NULL;
}
【问题讨论】:
-
关于“Resource id #1”的结构 - PHP manual 确实声明:“不要依赖此结构;它可能会发生变化。”,因此您获取 ID 的方法是不推荐。
-
@w3d 不幸的是,我不知道有什么更好的(其他)方法来获取 ID。你呢?
-
抱歉,不是这样!除了可能验证您确实返回了一个数字字符串,如果没有,则尝试另一种方法来获取 ID,例如。 '#' 上的 explode() 并获取第二个元素(如果存在)等。返回的字符串是否仅取决于 PHP 的(版本)?还是资源本身可能会影响施法过程中发生的事情?! TBH,如果它只是 PHP 那么你可能会很安全我会认为......现在!?如果你只是在一个唯一的 Id 之后,那么你可以只使用整个字符串,或者 hash 它可能是?
标签: php