Bonjour,
J'ai installé la beta4 de PHP5 afin de l'évaluer un peu.
Ma question est : peut on surcharger la fonction __construct() ?
par ex :
__construct(){}
__construct($id){}
Apparemment non, car j'ai une erreur à l'execution.
Donc, dans mon exemple précédent j'ai fait cette modif :
__contruct($id=null){
if($id==null)
...
else
...
}
Dès lors, je ne comprend pas trop l'intérêt d'avoir un constructeur
unifié par rapport à ce qui pouvait exister en PHP4 dans lequel le
constructeur portait le nom de la classe.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
loufoque
Message d'origine de fragmonster :
Bonjour, J'ai installé la beta4 de PHP5 afin de l'évaluer un peu. Ma question est : peut on surcharger la fonction __construct() ?
par ex : __construct(){} __construct($id){}
Apparemment non, car j'ai une erreur à l'execution. On ne peut avoir qu'un constructeur par classe.
Donc, dans mon exemple précédent j'ai fait cette modif : __contruct($id=null){ if($id==null) ... else ... } Effectivement, c'est le seul moyen
Dès lors, je ne comprend pas trop l'intérêt d'avoir un constructeur unifié par rapport à ce qui pouvait exister en PHP4 dans lequel le constructeur portait le nom de la classe. Pour l'héritage et tout ça c'est plus pratique.
Message d'origine de fragmonster :
Bonjour,
J'ai installé la beta4 de PHP5 afin de l'évaluer un peu.
Ma question est : peut on surcharger la fonction __construct() ?
par ex :
__construct(){}
__construct($id){}
Apparemment non, car j'ai une erreur à l'execution.
On ne peut avoir qu'un constructeur par classe.
Donc, dans mon exemple précédent j'ai fait cette modif :
__contruct($id=null){
if($id==null)
...
else
...
}
Effectivement, c'est le seul moyen
Dès lors, je ne comprend pas trop l'intérêt d'avoir un constructeur
unifié par rapport à ce qui pouvait exister en PHP4 dans lequel le
constructeur portait le nom de la classe.
Pour l'héritage et tout ça c'est plus pratique.
Bonjour, J'ai installé la beta4 de PHP5 afin de l'évaluer un peu. Ma question est : peut on surcharger la fonction __construct() ?
par ex : __construct(){} __construct($id){}
Apparemment non, car j'ai une erreur à l'execution. On ne peut avoir qu'un constructeur par classe.
Donc, dans mon exemple précédent j'ai fait cette modif : __contruct($id=null){ if($id==null) ... else ... } Effectivement, c'est le seul moyen
Dès lors, je ne comprend pas trop l'intérêt d'avoir un constructeur unifié par rapport à ce qui pouvait exister en PHP4 dans lequel le constructeur portait le nom de la classe. Pour l'héritage et tout ça c'est plus pratique.
m-e-
"fragmonster" a écrit dans le message de news:
Bonjour, J'ai installé la beta4 de PHP5 afin de l'évaluer un peu. Ma question est : peut on surcharger la fonction __construct() ?
par ex : __construct(){} __construct($id){}
Dans la même classe ou dans une classe mère et une classe fille ?
Apparemment non, car j'ai une erreur à l'execution.
Donc, dans mon exemple précédent j'ai fait cette modif : __contruct($id=null){ if($id==null) ... else ... }
Dans le post "changement de prototype dans une classe derive e PHP5", l'intervenant explique, d'après ce que j'ai compris, qu'on ne peut pas réécrire une méthode d'une classe fille en ajoutant des paramètres (et en changeant simplement le nom, est-ce que ça marche seulement ?). Ca m'a surpris.
En tout cas, s'il s'agit bien d'une surcharge du constructeur dans la hiérarchie de l'héritage (humm), alors cela doit être du à la limitation citée précédemment.
Dès lors, je ne comprend pas trop l'intérêt d'avoir un constructeur unifié par rapport à ce qui pouvait exister en PHP4 dans lequel le constructeur portait le nom de la classe.
Dans ce ZE2 il y a des choses qui sont étranges en effet.
"fragmonster" <fmeriot@hotmail.com> a écrit dans le message de news: 4aff9cb1.0403030056.21468461@posting.google.com...
Bonjour,
J'ai installé la beta4 de PHP5 afin de l'évaluer un peu.
Ma question est : peut on surcharger la fonction __construct() ?
par ex :
__construct(){}
__construct($id){}
Dans la même classe ou dans une classe mère et une classe fille ?
Apparemment non, car j'ai une erreur à l'execution.
Donc, dans mon exemple précédent j'ai fait cette modif :
__contruct($id=null){
if($id==null)
...
else
...
}
Dans le post "changement de prototype dans une classe derive e PHP5", l'intervenant explique, d'après ce que j'ai compris, qu'on ne
peut pas réécrire une méthode d'une classe fille en ajoutant des paramètres (et en changeant simplement le nom, est-ce que ça marche
seulement ?).
Ca m'a surpris.
En tout cas, s'il s'agit bien d'une surcharge du constructeur dans la hiérarchie de l'héritage (humm), alors cela doit être du à la
limitation citée précédemment.
Dès lors, je ne comprend pas trop l'intérêt d'avoir un constructeur
unifié par rapport à ce qui pouvait exister en PHP4 dans lequel le
constructeur portait le nom de la classe.
Dans ce ZE2 il y a des choses qui sont étranges en effet.
Bonjour, J'ai installé la beta4 de PHP5 afin de l'évaluer un peu. Ma question est : peut on surcharger la fonction __construct() ?
par ex : __construct(){} __construct($id){}
Dans la même classe ou dans une classe mère et une classe fille ?
Apparemment non, car j'ai une erreur à l'execution.
Donc, dans mon exemple précédent j'ai fait cette modif : __contruct($id=null){ if($id==null) ... else ... }
Dans le post "changement de prototype dans une classe derive e PHP5", l'intervenant explique, d'après ce que j'ai compris, qu'on ne peut pas réécrire une méthode d'une classe fille en ajoutant des paramètres (et en changeant simplement le nom, est-ce que ça marche seulement ?). Ca m'a surpris.
En tout cas, s'il s'agit bien d'une surcharge du constructeur dans la hiérarchie de l'héritage (humm), alors cela doit être du à la limitation citée précédemment.
Dès lors, je ne comprend pas trop l'intérêt d'avoir un constructeur unifié par rapport à ce qui pouvait exister en PHP4 dans lequel le constructeur portait le nom de la classe.
Dans ce ZE2 il y a des choses qui sont étranges en effet.
Shrom
"fragmonster" a écrit dans le message de news:
Bonjour, J'ai installé la beta4 de PHP5 afin de l'évaluer un peu. Ma question est : peut on surcharger la fonction __construct() ?
Bien sûr. Voici un exemple venant de PHPBuilder.com: <?php class foo { var $x;
function __construct($x) { $this->x = $x; }
function display() { print($this->x); }
function __destruct() { print("bye bye"); } }
$o1 = new foo(4); $o1->display(); ?>
"fragmonster" <fmeriot@hotmail.com> a écrit dans le message de
news:4aff9cb1.0403030056.21468461@posting.google.com...
Bonjour,
J'ai installé la beta4 de PHP5 afin de l'évaluer un peu.
Ma question est : peut on surcharger la fonction __construct() ?
Bien sûr. Voici un exemple venant de PHPBuilder.com:
<?php
class foo {
var $x;
Bonjour, J'ai installé la beta4 de PHP5 afin de l'évaluer un peu. Ma question est : peut on surcharger la fonction __construct() ?
Bien sûr. Voici un exemple venant de PHPBuilder.com: <?php class foo { var $x;
function __construct($x) { $this->x = $x; }
function display() { print($this->x); }
function __destruct() { print("bye bye"); } }
$o1 = new foo(4); $o1->display(); ?>
loufoque
Message d'origine de m-e- :
Dans le post "changement de prototype dans une classe derive e PHP5", l'intervenant explique, d'après ce que j'ai compris, qu'on ne peut pas réécrire une méthode d'une classe fille en ajoutant des paramètres (et en changeant simplement le nom, est-ce que ça marche seulement ?). Ca m'a surpris. On peut très bien le faire...
C'est juste le polymorphisme qui n'existe pas en PHP5. C'est à dire que seule la méthode de la classe fille sera appelée, et non les deux.
Message d'origine de m-e- :
Dans le post "changement de prototype dans une classe derive e PHP5", l'intervenant explique, d'après ce que j'ai compris, qu'on ne
peut pas réécrire une méthode d'une classe fille en ajoutant des paramètres (et en changeant simplement le nom, est-ce que ça marche
seulement ?).
Ca m'a surpris.
On peut très bien le faire...
C'est juste le polymorphisme qui n'existe pas en PHP5. C'est à dire que
seule la méthode de la classe fille sera appelée, et non les deux.
Dans le post "changement de prototype dans une classe derive e PHP5", l'intervenant explique, d'après ce que j'ai compris, qu'on ne peut pas réécrire une méthode d'une classe fille en ajoutant des paramètres (et en changeant simplement le nom, est-ce que ça marche seulement ?). Ca m'a surpris. On peut très bien le faire...
C'est juste le polymorphisme qui n'existe pas en PHP5. C'est à dire que seule la méthode de la classe fille sera appelée, et non les deux.