IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

cast des objets en php


Sujet :

Langage PHP

  1. #1
    r83
    r83 est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Points : 86
    Points
    86
    Par défaut cast des objets en php
    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

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Tu pourrais développer un peu ta question avec un petit exemple basique ?

  3. #3
    r83
    r83 est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $resultat->execute();
            $obj=  $resultat->fetch(PDO::FETCH_OBJ);
    Ma question est de savoir si je peux écrire quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $uneVoiture = (Voiture) $obj
    Merci

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    D'après la doc les seuls cast autorisés sont :

    (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)
    http://php.net/manual/fr/language.ty...e-juggling.php

    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = $sth->fetchAll(PDO::FETCH_CLASS, "MaClasseSpeciale");
    Faut juste être conscient que c'est la méthode de récupération des données la plus lente que tu puisse avoir.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    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.

Discussions similaires

  1. Problème lié au cast des objets entre eux
    Par icicmoi dans le forum Langage
    Réponses: 4
    Dernier message: 24/12/2010, 20h07
  2. la postion des objets en php
    Par agentmob dans le forum Langage
    Réponses: 1
    Dernier message: 26/04/2008, 21h48
  3. [POO] Récupérer des objets en PHP 4
    Par slyfer dans le forum Langage
    Réponses: 4
    Dernier message: 01/02/2007, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo