par
Matt.Rixx » 05 févr. 2006, 19:09
Et si tu n'avais qu'un seul constructeur par classe ?
Disons que la fonction ayant le meme nom que la classe n'est justement pas le constructeur ! D'abord, d'un point de vue purement technique car il y a la méthode __construct() et ensuite d'un point de vue de conception car je ne lui ai pas attribué ce role.
Maintenant si ta question veut dire "pourquoi tu fais pas en sorte que ta méthode ayant le meme nom que ta classe n'aie plus le meme nom que ta classe, ce qui, du coup, lui enleverait ce role potentiel de constructeur et qui, par extension, résoudrais ton problème?" alors je te répondrais que le pourquoi du comment n'est pas la question. Ma question étant de savoir s'il est possible de faire sauter ce NOTICE en enlevant tout bonnement le support de l'ancienne forme des constructeurs, gardés uniquement pour assurer la rétro-compatibilité avec PHP4
C'est par convention qu'un constructeur peut porter le nom de la classe pourquoi vouloir réinventer la POO ?
Comme je viens de le dire, c'est uniquement pour assurer la rétrocompatibilité avec php4 que c'est resté, sinon, va vérifier par toi-même, le constructeur des Langage Objet est (pratiquement) toujours une méthode avec un nom bien particulier, identique ds toutes les classes, au lieu du meme nom que la classe elle meme. Je ne réinvente donc pas la POO, j'essaye plutot de l'adapter a PHP5... a vrai dire, j'essaye simplement de supprimer la rétro-compatibilité avec PHP4
suffit de renommer la méthode par un autre nom que celui utilisé pour la classe.
Oui, il suffit aussi, que je passe en E_ALL (donc sans le E_STRICT), ou bien que je n'utilise pas les objets... voire carrement plus PHP... oui ca résoud le problème d'une certaine facon... mais ce n'est pas ce que je demande.
Sinon pour avoir plusieurs constructeurs il faut qu'il y ait une différence au niveau des paramètes, par exemple un constructeur n'en a pas alors que le 2eme en a 1.
Heu... la, je me demande définitivement si tu as compris que je parlais de PHP5... a ma connaissance, le polymorphisme n'est pas possible...