Les ID de ressource PHP sont-ils uniques par instance PHP? Est-ce que la conversion de toutes sortes de ressources à la chaîne retourne "Resource id #X" (où X
est un nombre décimal)? Y at-il une fonction qui retourne l'ID de ressource (je connais environ get_resource_type()
pour obtenir le type de ressource, mais je n'ai trouvé rien comme get_resouce_id()
), ou est-ce que cela doit être fait comme ceci?Les ID de ressource PHP sont-ils uniques?
function get_resource_id($resource)
{
return is_resource($resouce)
? substr((string) $resource, 13 /* strlen("Resource id #") */)
: NULL;
}
En ce qui concerne la structure de "Resource id # 1" - Le [manuel PHP] (http://www.php.net/manual/en/language.types.string .php # language.types.string.casting) indique: "Ne comptez pas sur cette structure, elle est sujette à changement.", donc votre méthode pour obtenir l'ID ne doit pas être recommandée. – MrWhite
@ w3d Malheureusement, je ne connais pas de meilleure (autre) méthode pour obtenir l'ID. Le faites vous? –
Désolé non, pas vraiment! Autre que peut être la validation que vous obtenez réellement une chaîne numérique retournée et si non, alors essayez une autre méthode pour obtenir l'ID par exemple. explode() sur le '#' et obtient le 2ème élément (s'il existe) etc. La chaîne retournée dépend-elle uniquement de (la version de) PHP? Ou est-il possible que la ressource elle-même puisse influencer ce qui se passe pendant le casting ?! TBH, si c'est juste PHP alors vous serez probablement assez sûr que j'aurais pensé ... pour l'instant !? Si vous êtes juste après un identifiant unique, alors vous pourriez simplement utiliser la chaîne entière, ou _hash_ il peut être? – MrWhite