Accueil > Forum > > > > [POO] Une classe dans une classe
[POO] Une classe dans une classe
samedi 8 décembre 2007 à 22:59:50 |
[POO] Une classe dans une classe

Mrreivax
|
Bonsoir. Et bien voila. J'ai créé une classe de gestion des images. J'ai par la suité créé une autre classe de gestion de banières. Mais, cette dernière à besoin de la premiere classe. Comment puis je la créer? Je m'explique:class imageliste { ... } class listing{ var dummy = new imageliste(); //Ceci génère une erreur} Cela me retoune une erreur de type " parse error". Pourquoi?? Et, comment pouvoir donc appeler ma 1er classe dans la seconde? Merci d'avance! Xavier PS/ C'est en php4. Mais si vous avez la solution en php5, je suis preneur aussi! 
|
|
samedi 8 décembre 2007 à 23:33:45 |
Re : [POO] Une classe dans une classe

neigedhiver
|
Salut,
Une propriété d'une classe est identifiée de deux manières différentes, suivant le contexte où elle est utilisée :
- dans la classe : $this -> property;
- en dehors de la classe : $instance -> property;
Elle est définie d'une seule manière dans la classe :
- var $var = .....;
La valeur qu'on lui attribue lors de sa définition, la valeur par défaut, ne peut être qu'une valeur constante. Il ne peut donc pas s'agir du résultat d'une fonction, d'un nouvel objet, etc. Sinon, ça peut être un entier, une constante, une chaine, un tableau...
Si tu veux définir instancier une classe dans une autre classe lors de l'instanciation de cette dernière, il faut le faire dans le constructeur.
En php4, le constructeur est une fonction qui porte le même nom que la classe.
En php5, c'est une fonction qui s'appelle __construct() (avec deux underscores). La syntaxe php4 est cependant compatible.
Maintenant, pour revenir à ton problème, si tu souhaites que ta classe qui gère les bannières puisse avoir les mêmes méthodes et propriétés que la classe qui gère les images, il te suffit d'étendre la première classe :
class listing extends imagelist {
}
Les méthodes sont automatiquement héritées.
Tu peux les réécrire. En php4, elles peuvent toutes être réécrites. En php5, seules les méthodes qui n'ont pas été définies avec le mot clé final peuvent l'être.
En php4, toutes les méthodes sont publiques. En php5, on peut spécifier la visibilité d'une méthode (et d'une propriété) avec les mots clés public, protected et private. Jette un oeil à la doc.
Si tu réécris une méthode, tu peux toujours appeler la méthode de la classe qui est étendue (la classe parent) comme ceci :
parent::nom_de_la_methode($arguments);
Euh voilà en gros...
|
|
samedi 8 décembre 2007 à 23:40:07 |
Re : [POO] Une classe dans une classe

Mrreivax
|
Mon problème, c'est que je ne veux pas des methodes et fonctions de la 1er classe. Par exemple, en visual basic, on peut définir à l'objet "TreeView" un autre objet "ImageList" par sa propriété "imagelist". Pour autant, mon objet "TreeView" ne contiendra pas les proproétés & méthodes de mon "ImageList"; "TreeView" a simpelement une variable de type "ImageList". Comment faire de même en php? Sinon, merci pour ta réponse, j'y ai appris pas mal de truc  Xavier
|
|
samedi 8 décembre 2007 à 23:44:48 |
Re : [POO] Une classe dans une classe

neigedhiver
|
Réponse acceptée !
Ok. Ben tu mets ça dans le constructeur :
Syntaxe php4 :
class listing {
var $dummy;
function listing() {
$this -> dummy = new imagelist();
}
}
Syntaxe php5 :
classe listing {
private dummy;
public function __construct() {
$this -> dummy = new imagelist();
}
}
|
|
samedi 8 décembre 2007 à 23:48:36 |
Re : [POO] Une classe dans une classe

Mrreivax
|
Génial! Vraiment génial! Merci beaucoup!!!!  Je vais pouvoir avancer dans mes traveau. Merci encore neigedhiver pour ta précieuse aide  Xavier
|
|
samedi 8 décembre 2007 à 23:49:58 |
Re : [POO] Une classe dans une classe

Mrreivax
|
"travaux" pardon pour l'orthographe
Xavier
|
|
Cette discussion est classée dans : class, gestion, classe, créé, poo
Répondre à ce message
Sujets en rapport avec ce message
Class POO retourné le nom de l'objet [ par MeTh ]
Bonjour,Comment retourné le nom de l'objet déclaré?exemple :$monobjet = new GridR();comment recuperé $monobjet dans ma class?Merci
templates avec poo [ par lesnes ]
bonjours je reprogramme totalement mon site en poo et je souhaiterai utiliser les templates mais l'on ne peut pas faire appel a une class exterieur a
Gestion membres via POO [ par FhX ]
Je me posais la question justement. Pour pouvoir faire une interface membre (donc : admin + membre + visiteur), dois-je faire ca en une seule classe ?
Reflexion sur un schema de POO (gestion d'emploi du temps d'une UFR) [ par Franquito ]
Bonjour à tous ! Je dois réaliser un schema pour une application de programation orienté objet. L'application fait la gestion d'emploi du temps d'un
CLASS: Appel d'une fonction interne a la classe.. [ par josh666 ]
Bonjour à tous , J'essais d'appeler un function interne à une classe via une autre focntion de la classe mais jai une erreur de fonction non définie..
[PHP5] Etendre une classe prédéfinie [ par ZuGbEn ]
Bonjour !Je débute plus ou moins dans la programmation orientée objet, et je souhaite faire une classe qui, à partir d'un DomNode existant, ajoute des
function_exists mais dans une classe [ par cedriclomb ]
Bonjour,je cherche une fonction pour tester si une fonction existe mais dans une class exempleif(function_in_class($this->{$act}->getPage()){ retu
fatal error sur chargement de class [ par fabrice_pi ]
salut à tous,j'utilise une classe PHP pour faire mes taleaux en html. depuis peu j'ai l'erreur suivante :Fatal error: Cannot instantiate non-existent
Visibilité des membres d'une classe avec autoload ? [ par petitelarve ]
Bonjour, ca m'énérve !!! J'ai une classe que je veut instancier dans un autre script avec autoload. L'objectif étant de récupérer des variables tablea
erreur class redeclare !!! [ par g_fuck ]
Salut tout le monde! il se fait que dans une de mes page j'ai besoin d'une class CLASSE_1 donc je fait dans ma page include(url/CLASSE_1.php);Et comme
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|