PHP 인스턴스 당 PHP 리소스 ID가 고유합니까? 모든 종류의 리소스를 문자열로 형 변환하면 "Resource id #X"가 반환됩니다 (X
은 10 진수입니다). 리소스 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;
}
시임으로 ● - [PHP 설명서 (http://www.php.net/manual/en/language.types.string .php # language.types.string.casting)은 "이 구조체에 의지하지 마십시오. 변경 될 수 있습니다."라고 말하므로 ID를 얻는 방법은 권장되지 않습니다. – MrWhite
@ w3d 불행히도, 나는 ID를 얻기 위해 더 나은 (다른) 방법을 모른다. 너? –
죄송합니다. 실제로 숫자 문자열이 반환되는지 확인하는 것 외에 다른 방법으로 ID를 얻으십시오. explode()를 '#'에두고 두 번째 요소를 얻습니다. (존재하는 경우) 반환 된 문자열은 PHP의 버전에 전적으로 의존합니까? 또는 리소스 자체가 캐스팅 도중 일어나는 일에 영향을 미칠 수 있습니까? TBH, 만약 PHP가 그렇다면 아마 당신은 꽤 안전 할 것입니다. 나는 지금 생각했습니다 ...! 고유 한 ID 바로 뒤에 있다면 전체 문자열을 사용할 수도 있고 _hash_ 일 수도 있습니다. – MrWhite