Rechercher : dans
Par :

POO héritage

Dernière réponse le 16 jun 2009 à 22:45:31 Smoking bird, le 16 jun 2009 à 21:43:17 
 Signaler ce message aux modérateurs

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:

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
Configuration: Windows Vista
Opera 9.64

Meilleures réponses pour « POO héritage » dans :
POO - Le polymorphisme Voir Définition du polymorphisme Le nom de polymorphisme vient du grec et signifie qui peut prendre plusieurs formes. Cette caractéristique est un des concepts essentiels de la programmation orientée objet. Alors que l'héritage concerne les classes (et...
Java - L'héritage Voir La notion d'héritage Le concept d'héritage est un des concepts les plus importants de la programmation orientée objet, car il conditionne irréversiblement la façon selon laquelle un code Java est écrit. L'héritage est un mécanisme permettant de...
Unix et Linux: Un héritage VoirLes différents Linux et Unix ne sont pas apparus par génération spontanée: Ils sont généralement dérivés d'autres Unix/Linux. Voir un résumé de l'héritage des distributions majeures: (Schéma réalisé avec le logiciel opensource yEd) Note Ce...
Héritage et polymorphisme VoirHéritage et polymorphisme La notion d’héritagexe "héritage" est très facile à comprendre. En C++, on dit qu’une classe définie à partir d’une classe existante et à laquelle on ajoute une fonctionnalité dérive de la classe initiale. Cette dernière...
Héritage multiple VoirHéritage multiple Pour représenter le monde réel, l’héritage simple (une seule classe de base directe) est insuffisant. Il est souvent nécessaire de composer une classe en lui faisant hériter de tout ou partie des membres de plusieurs classes mères....
POO - Encapsulation des données VoirLe concept d'encapsulation L'encapsulation est un mécanisme consistant à rassembler les données et les méthodes au sein d'une structure en cachant l'implémentation de l'objet, c'est-à-dire en empêchant l'accès aux données par un autre moyen que les...

1

hamzafes, le 16 jun 2009 à 21:59:29

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

Répondre à hamzafes

2

Godboss, le 16 jun 2009 à 22:04:01

Bonjour,

Ta variable $sct n'est jamais initialisée. Essaye cela :

class sectorAC {
protected $sct;
function __construct($sct){
$this->sct=$sct;
}
}
class articles extends sectorAC{
function __construct(){
parent::__construct("Bonjour");
echo $this->sct;
}
}

new articles();

Répondre à Godboss

3

 Smoking bird, le 16 jun 2009 à 22:45:31

Merci bien messieurs :D vous m'avez sauvé ma journée!
Votre solution fonctionne en effet, et je ne l'avais croisée nul part :) vous avez donc toute ma gratitude et je m'incline face à votre savoir^^

Bonne soirée, et merci encore ;)

Smoke

Répondre à Smoking bird