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.
Commentaires récents