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] Surchage php5 es ce du vrai POO ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 263
    Par défaut [POO] Surchage php5 es ce du vrai POO ?
    on parle de surcharge en POO, lorsqu'une class a deux ou plusieurs methodes ayant les mêmes noms mais des arguments differents.

    exemple : en c++
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    class moto
    {
     
    /*
    declaration des membres 
    */
     
    };
    //-----------------------------------
    moto::moto()
    {
    //..
    //..
    //..
    }
    //------------------------------------
    moto::moto(int a, int b)
    {
    //..
    //..
    //..
    }
    en php ?
    d'après le manuel on peux surcharger on utilisant la methode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    __call(nom_de_la_fonction,tableau_des arguments)
    qu'est ce que cette fonction a avoir avec la notion de surcharge bien definie en POO: (java,c++,c,c#).

  2. #2
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    http://fr.php.net/manual/fr/language...verloading.php

    La surcharge existe depuis php 5.0.1 mais c'est vrai que ce n'est pas du tout la même définition que dans les autres langages.

    En regardant les exemples donnés dans le manuel j'ai pour l'instant du mal à en saisir l'intérêt.... A part peut être pour les setters si on veut faire un truc chiadé pour ses membres de classes...
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  3. #3
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par guitou12
    En regardant les exemples donnés dans le manuel j'ai pour l'instant du mal à en saisir l'intérêt.... A part peut être pour les setters si on veut faire un truc chiadé pour ses membres de classes...
    On peut utiliser les setters et les getters pour faire une couche de persistance des objets : quand tu accèdes à un membre, le getter fait un SELECT dans ta base, quand tu le modifies, le setter fait un UPDATE... Ca peut être très rigolo.

  4. #4
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Citation Envoyé par Eusebius
    On peut utiliser les setters et les getters pour faire une couche de persistance des objets : quand tu accèdes à un membre, le getter fait un SELECT dans ta base, quand tu le modifies, le setter fait un UPDATE... Ca peut être très rigolo.
    Nous n'avons pas les mêmes valeurs
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  5. #5
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par guitou12
    Nous n'avons pas les mêmes valeurs
    Rigole pas, j'avais commencé à la coder, cette couche de persistance...

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 263
    Par défaut exemple
    je voulais faire recours à la notion de surcharge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function champs($n,$s)
    {
    if(isset($_POST[$n]))
    {
    echo "<input name=\"".$n."\" type='text' value=\"".$_POST[$n]."\"
      size=\"".$s."\">";
    }
    else
    {
    echo "<input name=\"".$n."\" type='text' size=\"".$s."\">";
    }	  		
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function champshidden($n,$s,$t)
    {
    $this->champs($n,$s);
    ?>
    <script language="javascript">
    document.getElementById("<?php echo $n; ?>").style.display="none"; //$t
    </script>
    <?php
    }
    Les deux methodes faisant partie de la même class même nom des arguments
    differents.

Discussions similaires

  1. [POO] Classe php5 et constructeur php4
    Par mathrem dans le forum Langage
    Réponses: 1
    Dernier message: 19/03/2007, 17h10
  2. [POO] Collection Php5 incompréhension :'(
    Par AsQuel dans le forum Langage
    Réponses: 33
    Dernier message: 05/03/2007, 15h45
  3. [POO] Demande conseils sur la POO avec php5
    Par tigunn dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2007, 14h44
  4. Réponses: 4
    Dernier message: 16/06/2006, 10h49
  5. Réponses: 9
    Dernier message: 16/03/2006, 18h05

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