OVH Cloud OVH Cloud

PHP5 et surcharge

2 réponses
Avatar
news user
Bonjour,

J'aimerais savoir comment faire pour surcharger une méthode dans une
classe en PHP5 ?

Je pensais à quelque chose comme ça :

class MyClass
{
private $myBlah;
private $myBleh;

function __construct()
{
$this->myBlah='lolol';
$this->myBleh='omglolol';
}

function __construct($blah, $bleh)
{
$this->myBlah=$blah;
$this->myBleh=$bleh;
}
}

mais cela ne semble pas marcher, il me dit que je peux pas redéfinir une
function ou qqch du style...

Dans la doc j'ai lu qu'on est censé utiliser __set __get et __call ... ?

D'avance merci

2 réponses

Avatar
Frederic BISSON
function __construct()
function __construct($blah, $bleh)
mais cela ne semble pas marcher, il me dit que je peux pas redéfinir
une function ou qqch du style...
A ma connaissance, tu ne peux pas le faire en PHP. Tu dois jouer sur la

capacité de PHP de ne pas avoir de typage fort et affecter des valeurs
par défaut aux paramètres

ex:
function __construct($blahúLSE,$blehúLSE) {
if(is_string($blah)) {
...
}
...
}

@+

Frédéric

Avatar
loufoque
Frederic BISSON a dit le 19/07/2004 21:57:

function __construct()
function __construct($blah, $bleh)
mais cela ne semble pas marcher, il me dit que je peux pas redéfinir
une function ou qqch du style...


A ma connaissance, tu ne peux pas le faire en PHP. Tu dois jouer sur la
capacité de PHP de ne pas avoir de typage fort et affecter des valeurs
par défaut aux paramètres

ex:
function __construct($blahúLSE,$blehúLSE) {
if(is_string($blah)) {
...


Je ferais plutôt
public function __construct($blah = null, $bleh = null)
{
if(isset($blah)) ...
}