Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/06/2011, 11h59   #1
Invité régulier
 
Inscription : février 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 23
Points : 8
Points : 8
Par défaut [PHP 5]Accessibilité d'un objet dans une fonction

Salut à tous amis developpeur et developpeuse. Je débute en php objet et y'a un truc que je comprend pas. J'ai un projet en cour developper sur le model Model Vue Controller. J'ai un objet "erreur qui ce rempli suite à la verification de mon controleur. Le soucis est que lorsque j'appel ma fonction de controle il ne trouve pas l'objet erreur appeler dans l'index. Si j'appel ma methode en dehors de la fonction de controle tout va bien mais dans celle-ci c'est mort... Éclairez moi si possible...

Mon index.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
		//Liste des models
		include_once ('application/models/connect.php');
		include_once ('application/models/erreur.class.php');
		include_once ('application/models/formation.class.php');
		include_once ('application/models/domaineFormation.class.php'); 
 
		//Liste des controllers
		include_once ('application/controllers domaineFormation.ctrl.php');
 
		$formation = new formation();
		$erreur = new erreur();
La partie de mon domaineFormation.class.php qui appel mon controlleur :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public function genererXMLDomaineFormation($idFormation)
		{			
			$i=0;
			$xml = '<domaine-formation>'."\n";
			
			//$erreur = "genererXMLDomaineFormation=>";
			
			//Liste des formacodes (rep min 0, rep max 5)
			$tabFormacode = $this->getFormacodesSelonIDFormation($idFormation);
			if ($tabFormacode){
				foreach($tabFormacode as $ligne){
					if($i<5){
						verifFormacode($idFormation, $ligne->FORMACODE_CODE);
						$xml .= "<code-FORMACODE>".$ligne->FORMACODE_CODE."</code-FORMACODE>"."\n";	
					}
					$i++;
				}
				$i=0;
.............
Et mon controlleur :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
//Verification taille Formacode = 5
	function verifFormacode($idFormation, $formacode)
	{
		if (isset($formacode)){
			if(strlen($formacode)<>2){
				$libelleErreur = "Erreur : Formation=>$idFormation, Formacode=>$formacode : Taille du champ Formacode incorrect.";
				$erreur->ajoutErreur($libelleErreur);
			}
		}	
	}
DonMero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 12h42   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
Soit tu passes ton objet Erreur dans le constructeur de l'objet qui va l'utiliser et tu le gardes ainsi sous la main via $this->
Soit tu la déclares comme étant une variable globale avant de l'utiliser :
Code php :
1
2
3
function verifFormacode($idFormation, $formacode)
{
    global $erreur;
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 14h39   #3
Invité régulier
 
Inscription : février 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 23
Points : 8
Points : 8
Je ne connaissais pas le global, merci en tout cas. Ca marche nikel
DonMero est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h53.


 
 
 
 
Partenaires

Hébergement Web