Accueil > Code > Récuperation de l’ID d’une instance d’objet

Récuperation de l’ID d’une instance d’objet

Depuis PHP 5.2, il n’est plus possible de récupérer l’ID interne d’un objet via un cast en string sans avoir implémenté de méthode __toString sur ledit objet.

Ancienne méthode:

1
2
3
4
5
6
7
class foo {
    public function __construct() {
        echo "Hi, it's me!";
    }
}
$bar = new foo();
print $bar;

Auparavant, ce snippet renvoyait l’ID interne de l’objet. Désormais, et c’est plus propre comme ça, il lance une erreur fatale récuperable (« Catchable fatal error: Object of class foo could not be converted to string in filename on line n« ). Mais du coup, on perd un moyen simple et efficace de savoir à quelle instance d’un objet on a affaire, ce qui peut être très utile dans un processus de debug.

Fort heureusement, les gentils monsieurs de PHP ont implémenté une fonction qui permet de refaire la même chose: spl_object_hash() ! Hé ben voilà, le monde est sauvé. Allez, salut.

Categories: Code Tags: ,
  1. Pas encore de commentaire
  1. Pas encore de trackbacks