POO héritage
Résolu
Smoking bird
Messages postés
911
Statut
Membre
-
Smoking bird Messages postés 911 Statut Membre -
Smoking bird Messages postés 911 Statut Membre -
Bonjour,
Le problème qui m'accable parvient peu à peu à avoir raison sur ma santé mentale, j'ai donc besoin d'aide (vous pouvez me filer le numéro de SOS suicides, ça me fera toujours sourire -_-' ;) )
Voilà, je programme en POO avec PHP depuis quelques temps déjà et je commence à me lancer dans ce vaste bourbier qu'est le principe de l'héritage.
Voici:
Comme vous le comprendrez je cherche à récupérer la variable sct déclarée dans sectorAC en appliquant extends à articles, et à l'écran, pas de retour.
J'ai vu des tutos, des sujets, j'ai même un gros pavé sous le nez pour essayer de comprendre où est mon erreur, rien n'y fait :s.
Quelqu'un peut il m'éclairer?
Smoke
Le problème qui m'accable parvient peu à peu à avoir raison sur ma santé mentale, j'ai donc besoin d'aide (vous pouvez me filer le numéro de SOS suicides, ça me fera toujours sourire -_-' ;) )
Voilà, je programme en POO avec PHP depuis quelques temps déjà et je commence à me lancer dans ce vaste bourbier qu'est le principe de l'héritage.
Voici:
class sectorAC {
protected $sct;
function __construct($sct){
$this->sct=$sct;
}
}
class articles extends sectorAC{
function __construct(){
echo $this->sct;
}
}
Comme vous le comprendrez je cherche à récupérer la variable sct déclarée dans sectorAC en appliquant extends à articles, et à l'écran, pas de retour.
J'ai vu des tutos, des sujets, j'ai même un gros pavé sous le nez pour essayer de comprendre où est mon erreur, rien n'y fait :s.
Quelqu'un peut il m'éclairer?
Smoke
3 réponses
Ce que t'as fait
class sectorAC {
protected $sct;
function __construct($sct){
$this->sct=$sct;
}
}
class articles extends sectorAC{
function __construct(){
echo $this->sct;
}
}
L'erreur
je suppose que tu fait l'instanciation de la classe articles comme ça:
$a=new articles();
où bien
$sct=...
$a=new articles($sct)
Dans les deux cas rien ne serra affiché. pourquoi? je t'explique
1-new articles() ou new articles($sct) les deux appelent le constructeur de la classe articles et pas celui de la classe mère.
2-le constructeur de la classe articles n'affecte rien à l'attribut $sct, et donc $this->sct est tjr vide.
La Solution
class sectorAC {
protected $sct;
function __construct($sct){
$this->sct=$sct;
}
}
class articles extends sectorAC{
function __construct($sct){
parent::__construct($sct);
echo $this->sct;
}
}
Allah mo3ine
class sectorAC {
protected $sct;
function __construct($sct){
$this->sct=$sct;
}
}
class articles extends sectorAC{
function __construct(){
echo $this->sct;
}
}
L'erreur
je suppose que tu fait l'instanciation de la classe articles comme ça:
$a=new articles();
où bien
$sct=...
$a=new articles($sct)
Dans les deux cas rien ne serra affiché. pourquoi? je t'explique
1-new articles() ou new articles($sct) les deux appelent le constructeur de la classe articles et pas celui de la classe mère.
2-le constructeur de la classe articles n'affecte rien à l'attribut $sct, et donc $this->sct est tjr vide.
La Solution
class sectorAC {
protected $sct;
function __construct($sct){
$this->sct=$sct;
}
}
class articles extends sectorAC{
function __construct($sct){
parent::__construct($sct);
echo $this->sct;
}
}
Allah mo3ine