每個PHP實例的PHP資源ID是唯一的嗎?將所有類型的資源轉換爲字符串是否返回「Resource id #X」(其中X
是一些十進制數)?有沒有函數返回資源ID(我知道get_resource_type()
獲取資源類型,但沒有找到像get_resouce_id()
這樣的東西),還是必須這樣做?PHP資源ID是唯一的嗎?
function get_resource_id($resource)
{
return is_resource($resouce)
? substr((string) $resource, 13 /* strlen("Resource id #") */)
: NULL;
}
關於的 「資源ID#1」 的結構 - [PHP手冊](http://www.php.net/manual/en/language.types.string .php#language.types.string.casting)的確聲明:「不要依賴這個結構;它可能會發生變化」,所以你的方法來獲取ID不被推薦。 – MrWhite 2010-07-29 09:57:28
@ w3d不幸的是,我不知道任何更好的(其他)方法來獲得ID。你做? – 2010-07-30 13:12:09
對不起,不是真的!除了可能驗證你確實得到一個返回的數字字符串,如果沒有,然後嘗試另一種方法來獲得ID例如。在'#'上爆炸()並得到第二個元素(如果它存在)等。返回的字符串完全依賴於(的版本)PHP?或者有可能資源本身可以影響鑄造過程中發生的事情?! TBH,如果它只是PHP,那麼你可能會很安全,我會認爲......現在!?如果你只是在一個唯一的ID後,那麼你可以使用整個字符串,或_hash_它可能是? – MrWhite 2010-07-30 14:22:19