|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 143 ![]() |
Bonjour!
Je me met à l'objet et j'ai mon premier probleme. J'ai une classe date : Code :
Et une classe evenement : Code :
Mon fichier pour afficher la date_evenement de la classe evenement : Code :
Merci! Edit : ajout du constructeur dans classe cl_date |
||||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : août 2006 Messages : 1 207 ![]() |
Dans ta classe cl_evenement tu écris ca :
Code :
$this->date_evenement=cl_date::set_Date(); S'il n'y a pas instanciation, alors depuis la fonction appelé (ici set_Date) les variable de la classe ($this->date) ne sont pas accessible. D'ou, probablement, ton problème. Donc je pense que la solution, c'est, dans cl_evenement de faire un new cl_date et d'appeler avec -> et pas :: [edit]Hummm... apres relecture, même si je que j'ai dit au dessus reste vrai, un autre problème est que tu n'a pas de return dans set_Date[/edit]
__________________
Rakken Oneira, un monde imaginaire d'Heroic Fantasy. Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/ |
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Développeur Web Inscription : avril 2005 Messages : 395 ![]() |
tout d'abord :
Fatal error: Call to undefined method cl_evenement::VerifDateTime() tu affiches les erreurs ? |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : décembre 2007 Messages : 426 ![]() |
Je débute aussi en POO, la première remarque de Rakken à l'air bonne, par contre je vois pas pourquoi il faudrais un return.
Je pense que l'héritage aurais été approprié je pense dans ton exemple, tu pourrais faire un truc du style. |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : décembre 2007 Messages : 426 ![]() |
Et pourquoi dans cl_date tu fait une fonction set_date qui n'est pas constructeur comme dans cl_evenement ?
J'aurais mis set_date en constructeur |
|
|
00
|
|
|
#6 | ||||
|
Membre éclairé
![]() Inscription : décembre 2007 Messages : 426 ![]() |
si dans cldate tu met set_date en constructeur, tu devrais pouvoir faire dans cl_evenement :
Code :
Code :
|
||||
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 143 ![]() |
Merci de votre aide! Alors : Rakken : pour le :: je n'étais pas du tout sur de moi, j'ai tester beaucoup de chose en essayant de trouver la solution (quand on arrive plus à réfléchir c'est la dernière solution! Je sais qu'il faut que je déclare mon attribut date_evenement comme étant de type cl_date, j'ai essayé de declarer mon attribut comme ceci mais ca ne marchait pas : Code :
private $date_evenement= new cl_date(); Eric93 : En utilisant l'héritage ma variable $date_evenement serait lié à la classe cl_date? Dans cl_date j'ai déjà un constructeur que je n'ai pas représenté ici La déclaration de ma variable $date_evenement en tant que type cl_date se fait donc avec Code :
$this->date_evenement = new cl_date(); Je test de suite! |
|
|
00
|
|
|
#8 | ||||
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 143 ![]() |
Pour ceux qui aurait le même probleme que moi :
Pour déclarer un attribut comme étant un objet : Pour moi : Code :
$this->date_evenement = new cl_date(); Code :
Code :
Merci!!! Petite question en plus : j'étais en train de coder une fonction set_Date_Evenement dans ma classe cl_evenement mais cela est il vraiement utile? N'est il pas plus simple de passer par : ($objet est un cl_evenement) $objet->date_evenement->set_Date($newdate); au lieu de coder ma classe set_Date_Evenement et faire $objet->set_Date_Evenement($newdate); |
||||
|
|
00
|
|
|
#9 | |
|
Membre éclairé
![]() Inscription : décembre 2007 Messages : 426 ![]() |
Citation:
Tout dépend de ce que tu veux faire.
__________________
Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème |
|
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 143 ![]() |
Ma classe cl_evenement ne va pas avoir besoin tout le temps de ma classe date, seul 2 de mes attributs vont en avoir besoin.
Après mes propriétés vont être $titre, $libelle $id_evenement etc et mes fonction bdd_MAJ_evenement($titre,$libelle) bdd_supp_evenement($id) etc Je vais m'en servir pour interagir avec ma base de données et autres petites choses :p |
|
|
00
|
|
|
#11 | ||||
|
Membre éclairé
![]() Inscription : décembre 2007 Messages : 426 ![]() |
Petite idée de simplification :
Code :
Code :
__________________
Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème |
||||
|
|
00
|
|
|
#12 | ||
|
Membre éclairé
![]() Inscription : décembre 2007 Messages : 426 ![]() |
Correction (valeur par defaut pour la date) :
Code :
$date = new cl_date(); //pour la date du jour $date = new cl_date($d) //pour une date donnée
__________________
Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème |
||
|
|
00
|
|
|
#13 | ||
![]() ![]() Inscription : août 2006 Messages : 1 207 ![]() |
Ca ce compte la, je rajouterai une nuance en mettant $date=null en parametre du constructeur.
Code :
[edit]Grillé ;-)[/edit]
__________________
Rakken Oneira, un monde imaginaire d'Heroic Fantasy. Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/ |
||
|
00
|
|
|
#14 |
|
Membre éclairé
![]() Inscription : décembre 2007 Messages : 426 ![]() |
Oui effectivement c'est mieu, pour éviter un appel à VerifDateTime pour rien, il peux aussi mettre
Code :
if($date && $this->VerifDateTime($date)==1) Code :
if($date && $this->VerifDateTime($date))
__________________
Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème |
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() Inscription : décembre 2007 Messages : 426 ![]() |
Correction, je pense qu'il faut utiliser isset :
Code :
if(isset($date) && $this->VerifDateTime($date))
__________________
Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème |
|
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 143 ![]() |
Oui, je pense que la solution avec isset devrais fonctionner. Je testerais ca lundi.
Merci de votre aide, étant donné que je commence juste la POO en php autant partir sur de bonne bases ;p |
|
|
00
|
|
|
#17 |
|
Membre éclairé
![]() Inscription : décembre 2007 Messages : 426 ![]() |
Après réflexion, c'est mieu de mettre le isset dans VerifDateTime qui devras donc aussi être féfinie comme suit
__________________
Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com