Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 15/10/2007, 15h05   #1
Membre actif
 
Homme Arnaud
Inscription : décembre 2006
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 27
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : décembre 2006
Messages : 871
Points : 195
Points : 195
Par défaut [POO] Retourner une variables contenu dans une autre méthode

Bonjour,

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
class Test()
{
  public Toto()
  {
      $variable1 = 1;
      //différent traitement avec un rutrun final
  }
 
  public Titi()
  {
      return this->variable1;
  }
}

Suivant l'exemple suivant, comment je peux faire pour dans ma 2eme méthode (Titi()) pouvoir retourner une variable qui est contenu dans la 1er méthode ?

Merci d'avance
__________________
www.SonolightDj.com
Prestataire sonorisation et lumière
arnaudperfect est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 15h08   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Tu ne peux pas.
$variable1 est une variable locale à la méthode Toto() elle disparaît donc de la mémoire dès que Toto() a fini son exécution.

Donc, dans Titi() tu fais appel à la variable d'instance variable1 ($this->variable1) il faut donc que ta classe possède un membre qui s'appelle variable1 et que tu mémorises sa valeur dans Toto()

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Test()
{
  private $variable1;
  public Toto()
  {
      $this->variable1 = 1;
      //différent traitement avec un rutrun final
  }
 
  public Titi()
  {
      return $this->variable1;
  }
}
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 15h47   #3
Membre actif
 
Homme Arnaud
Inscription : décembre 2006
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 27
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : décembre 2006
Messages : 871
Points : 195
Points : 195
Ca n'a pas l'aire de fonctionner :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Pagination 
{
	private $page;
	private $nb;
 
	public function Generate($sql) 
	{
		// Numéro de la page à afficher
		$this->page = 0;
		if(isset($_SESSION['pag'])) 
		{
 
			$this->page = $_SESSION['pag'];
		}
		// Nombre de résultats par page
		$this->nb = 10;
		if(isset($_SESSION['nb'])) 
		{
			$this->nb = $_SESSION['nb'];
		}
 
		// Nombre total d'enregistrements					   
		$query = mysql_query($sql) or die('Erreur MySQL : '.mysql_error());
		$row = mysql_num_rows($query);
		$total = $row[0];
 
		// Nombre maximum de pages
		$max_pg = ceil($total / $this->nb);
 
		// Selection des enregistrements pour la page considérée				  
		return $sql .= ' LIMIT '.($this->page * $this->nb).','.$this->nb.'';
	}
 
 
	public function PageActuelle()
	{
		return 'Page actuelle : '.$this->page;
	}
}
__________________
www.SonolightDj.com
Prestataire sonorisation et lumière
arnaudperfect est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 15h52   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
comment appelles-tu ta classe exactement déjà?
Et ensuite quand tu dis "ca ne fonctionne pas" c'est quoi le probleme?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 16h10   #5
Membre actif
 
Homme Arnaud
Inscription : décembre 2006
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 27
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : décembre 2006
Messages : 871
Points : 195
Points : 195
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$pagination = new Pagination();
 
echo $pagination->PageActuelle();
echo $pagination->NbEnregistrement();
echo $pagination->Page();
echo $pagination->NbEnregistrementParPage();
 
$sql = 'SELECT client_nom_societe, client_nom, client_prenom, prestation_ville, prestation_type_prestation, prestation_date, prestation_realise_rendez_vous, prestation_prix, prestation_cheque_accompte
FROM client, prestation
WHERE prestation_ID_client = client_ID_client
ORDER BY prestation_date DESC';
 
                $reponse = mysql_query($pagination->Generate($sql)) or die('Erreur MySQL : '.mysql_error());
                while ($donnees = mysql_fetch_array($reponse) )
                {
                  ...
                }
Quand je dis que ca ne fonctionne par, c'est qu'uen faite je n'ai occune informatio retourné par mes variables.

J'ai bien le résultat de ma requete qui s'affiche, aucuns problèmes, il y a juste ces instanciations qui ne fonctionne pas :

echo $pagination->PageActuelle();
echo $pagination->NbEnregistrement();
echo $pagination->Page();
echo $pagination->NbEnregistrementParPage();
__________________
www.SonolightDj.com
Prestataire sonorisation et lumière
arnaudperfect est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 16h18   #6
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
t'as pas initialisé la variable page donc il faut au moins lui donner une valeur par défaut dans la classe.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 16h29   #7
Membre actif
 
Homme Arnaud
Inscription : décembre 2006
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 27
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : décembre 2006
Messages : 871
Points : 195
Points : 195
A oui en effet ;-)

merci c'est bon ca fonctionne !
__________________
www.SonolightDj.com
Prestataire sonorisation et lumière
arnaudperfect 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 22h27.


 
 
 
 
Partenaires

Hébergement Web