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 :

[POO] héritage et cast


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut [POO] héritage et cast
    Bonjour,

    J'ai un problème de cast.

    J'ai créer une classe Personnage.
    est il possible de faire un cast d'une variable vers personnage par exemple :

    $perso = (Personnage)$mavariable;

    ?


    Merci de votre aide.

    Michael

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonsoir, à priori je dirais non

    Comme les ressources contiennent des valeurs très spéciales, comme des fichiers ouverts, des connexions aux bases de données, des images ou n'importe quoi d'autre, vous ne pouvez pas convertir une valeur en ressource.
    Cela semble logique qu'un entier ne puisse être converti en un objet de classe possédant méthodes, attributs etc...

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    oui, mais par exemple si j'ai un tableau de 'Personnage' et que je fais une boucle :
    foreach ($tableau as $perso) {
    $test = (Personnage)$perso
    }

    ou ce n'est pas nécessaire, et $perso est sera automatiquement reconnu comme 'Personnage' et non comme 'Object' ?
    Car je voudrais ensuite accéder aux différents attributs de $perso.

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Je comprends pas ta logique, dans ton exemple tu cherches à caster un objet, occurence de la classe Personnage en un objet de la classe Personnage ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Oui, enfin en C# on est obligé de caster pour faire comprendre au compilateur.
    Mais ca à l'air de marcher en php sans. donc voila, mais merci de ton aide .

  6. #6
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Php est un langage faiblement typé, c'est un avantage mais aussi un inconvénient...

    Bonne chance pour ton projet

  7. #7
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    tu peux éventuellement te rabattre sur l'opérateur instanceof qui te permet de vérifier si ton objet est bien une instance d'une classe. En gros, ça donnerai $pers instanceof Personnage et tu déclenche une exception si la condition n'est pas vérifier.


    Patouche

  8. #8
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Je n'en ai pas besoin de ce cas ci. mais jen aurais surement besoin plus tard.
    Problème résolu.
    Merci pour votre rapidité!

  9. #9
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Citation Envoyé par mikekiche Voir le message
    Oui, enfin en C# on est obligé de caster pour faire comprendre au compilateur.
    Pas du tout, en c# ta list est déjà typée, tu n'as pas à caster :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    List<Personnage> personnages = new List<Personnage>();
    personnages.Add(new Peronnage('Jean-Pierre'));
     
    foreach(Personnage p in personnages)
    {
        // ici on n'a pas fait de cast, on indique juste au compilateur le type de p, mais on n'est pas passé d'un type objet à un type fortement typé.
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Poo : héritage & constructeur
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 11/07/2006, 14h29
  2. [POO]héritage du constructeur de la classe parente
    Par new_wave dans le forum Langage
    Réponses: 7
    Dernier message: 10/03/2006, 14h25
  3. héritage et casting
    Par dinver dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2005, 23h23
  4. [POO-Héritage] Appel du constructeur en PHP4.3.2
    Par raoulchatigre dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2005, 15h37
  5. [DP][héritage]sous-casting dynamique
    Par Le prophete dans le forum Général Java
    Réponses: 4
    Dernier message: 20/08/2004, 11h56

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