2009-12-05 20 views
4

Je cherche un moyen d'obtenir l'ID d'instance d'un objet/ressource donnée avec PHP, de la même manière var_dump() fait:Comment obtenir ID d'instance avec PHP

var_dump(curl_init()); // resource #1 of type curl 
var_dump(curl_init()); // resource #2 of type curl 

Comment puis-je obtenir le nombre d'instances sans appeler var_dump()? C'est possible?

+0

pour quoi? cela n'a pas beaucoup de sens. –

Répondre

5

convertir en un int pour obtenir la ressource ID:

$resource= curl_init(); 
var_dump($resource); 
var_dump(intval($resource)); 
+1

Il a mentionné sans utiliser 'var_dump';) – Jakub

+0

Tellement simple ... Merci pygorex1! –

+2

C'est en fait une très bonne solution. Vous pouvez également faire (int) $ resource –

3

Ceci est une question très intéressante ... Je serais curieux de voir ce que vous utiliser pour ... mais voici une façon ...

<?php 
$ch = curl_init(); 
preg_match("#\d+#", (string) $ch, $matches); 
$resourceIdOne = end($matches); 


$ch2 = curl_init(); 
preg_match("#\d+#", (string) $ch2, $matches); 
$resourceIdTwo = end($matches); 
?> 
+0

Très bonne réponse. J'aurais +1 mais je suis hors de vote pour aujourd'hui :) –

+0

Je ne vais pas l'utiliser pour quelque chose hors de la normale, je pensais en remplaçant le var_dump() pour une fonction plus informative/lisible mais je suppose qu'il peut être utilisé dans un modèle de registre intelligent aussi. –

4
(int) curl_init() 
+0

Pourquoi le besoin de substr()? –

+0

parce que je pensais initialement que vous avez vraiment besoin d'obtenir la chaîne exacte "ressource (x) de type Y" - mais après avoir lu à nouveau votre question, je pensais que vous voulez vraiment la valeur entière sans le fouillis ;-) – Joscha

0
function get_resource_id($resource) { 
    if (!is_resource($resource)) 
     return false; 

    return array_pop(explode('#', (string)$resource)); 
}