Bonjour,
Est-il possible de convertir un objet de la classe object (obtenu par un PDO::fetch_obj) en objet de la classe voiture par exemple ?
Ou alors faut-il passer par une instanciation à la main ?
Merci
Bonjour,
Est-il possible de convertir un objet de la classe object (obtenu par un PDO::fetch_obj) en objet de la classe voiture par exemple ?
Ou alors faut-il passer par une instanciation à la main ?
Merci
Tu pourrais développer un peu ta question avec un petit exemple basique ?
Voici le code :
Ma question est de savoir si je peux écrire quelque chose du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $resultat->execute(); $obj= $resultat->fetch(PDO::FETCH_OBJ);
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part $uneVoiture = (Voiture) $obj
D'après la doc les seuls cast autorisés sont :
http://php.net/manual/fr/language.ty...e-juggling.php(int), (integer) : modification en integer
(bool), (boolean) : modification en boolean
(float), (double), (real) : modification en float
(string) : modification en string
(array) : modification en array
(object) : modification en object
(unset) : modification en NULL (PHP 5)
Tu peux te faire ta proopre fonction de cast en parcourant l'objet reçu et en hydratant un autre objet du bon type.
Tu peux aussi utiliser la reflexion
Le plus simple étant sans doute de faire quelque chose comme ça :
Faut juste être conscient que c'est la méthode de récupération des données la plus lente que tu puisse avoir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $result = $sth->fetchAll(PDO::FETCH_CLASS, "MaClasseSpeciale");
Personnellement, j'aurais plutôt tendance à faire un fetch simple et à prévoir une méthode d'hydratation dans ma classe pour remplir mon objet.
Partager