Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2336 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Résoudre le pb d'absence de surcharge de constructeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Résoudre le pb d'absence de surcharge de constructeur

n°1172039
zapan666
Tout est relatif
Posté le 08-08-2005 à 00:25:12  profilanswer
 

Bonjour, avez vous une/des techniques pour résoudre la surcharge, via le type des arguments sur le constructeur en php5 ?
Sur la doc php, il y a une petite technique :  

Code :
  1. function __construct ($type1 = null, $type2 = null) {
  2.    if ($type1 != null) {
  3.     // Constructeur de type1
  4.    } else if ($type2 != null) {
  5.      // Constructeur pour le type2
  6.    } else {
  7.      // Constructeur avec aucun type fourni
  8.    }
  9.   }


Bon, perso, je trouve pas ça génial, car le script peut quand même marcher, si on se trompe dans les types, et si il y a beaucoup de type possible différent sur le même constructeur, ça risque de donner ça :

Code :
  1. $b = new MyClass(null, null, null, null, null, null, $type5);


 
Si vous avez mieux...je suis preneur ;)


---------------
my flick r - Just Tab it !
mood
Publicité
Posté le 08-08-2005 à 00:25:12  profilanswer
 

n°1172106
zapan666
Tout est relatif
Posté le 08-08-2005 à 09:20:58  profilanswer
 

En fait, elle est nulle cette méthode, car ça signifie que quand on fait un new, on doit connaître le type de l'objet, et selon le type, faire le bon new via un switchou if... donc cette méthode est complètement out.
 
uhm.. et en utilisant gettype ? Quelqu'un a essayé ?  
 

Code :
  1. function __construct($obj) {
  2. $type = gettype($obj);
  3. switch($type) {
  4. case 'type1':
  5. // constructeur type1
  6. break;
  7. case 'type2':
  8. // constructeur type2
  9. break;
  10. defaut:
  11. // constructeur pas prévu
  12. throw new Exception("Constructeur non défini" );
  13. break;
  14. }
  15. }


Message édité par zapan666 le 08-08-2005 à 09:25:27

---------------
my flick r - Just Tab it !
n°1172412
zapan666
Tout est relatif
Posté le 08-08-2005 à 14:29:11  profilanswer
 

non, mais up quoi  :o  
 
Personne ne s'est encore posé cette question (existencielle) ? :ouch:


---------------
my flick r - Just Tab it !
n°1172446
zapan666
Tout est relatif
Posté le 08-08-2005 à 14:57:11  profilanswer
 

je me répond a mon topic alors...
 
bah, y'a mieux que getType : instance of (comme en java)
et op :  
 
http://php.bieffe.org/manual/en/la [...] s.type.php
 
donc, dans la fonction constructeur, suffit de faire un switch(ou if..) selon l'instance de la classe en paramètre.
http://www.zend.com/php5/articles/ [...] c=0&view=1


Message édité par zapan666 le 08-08-2005 à 15:07:47

---------------
my flick r - Just Tab it !
n°1172608
el_gaucho
Posté le 08-08-2005 à 16:38:20  profilanswer
 

et pour parcourir tes arguments :
 
function __construct() {
    $numargs = func_num_args();
    $arg_list = func_get_args();
    if ($numargs>0) {
      for ($i = 0; $i < $numargs; $i++) {
        // ton traitement
      }
    }
}


Message édité par el_gaucho le 08-08-2005 à 16:38:58

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Résoudre le pb d'absence de surcharge de constructeur

 

Sujets relatifs
surcharge operator<<un systeme avec le pivot de gauss a resoudre
pb de constructeur C++ ?[MySQL]résoudre une égalité dans une requête de classement
Fonction POS impossible (facile a resoudre je pense)XMLEncoder et JTree - constructeur avec paramètre -
Pouvez-vous m'aider à résoudre mon memory leak ?Toujours constructeur, pointeurs, agrégation
Constructeur de copie, agrégation et surcharge de "=" 
Plus de sujets relatifs à : Résoudre le pb d'absence de surcharge de constructeur


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)