Bonjour,

Alors je vais rapidement vous expliquer le petit soucis sur lequel je travaille.

Supposons une class Test, le but serai d'avoir dans cette classe la possibilité d'avoir une variable dont la portée dépasse la classe pour pouvoir être utilisé dans une autre classe ou simplement dans le code principal d'une page.

Pour l'instant la seule manière que j'ai trouvé et de créer soit un cookie, soit une variable de session, mais je ne trouve pas ça très propre.

Exemple ::

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<?php
session_start();
 
class Test{
 
	//variables
 
	public function __construct()
	{
		$var = "une variable";
		$_SESSION["portee"] = $var;
		setcookie("portee", $var);
	}
 
}
 
$test = new Test();
 
echo $_SESSION["portee"];
echo "<br />";
echo $_COOKIE["portee"];
 
?>
Ainsi, j'aimerai savoir si il est possible d'avoir le même résultat en utilisant des propriétés de la POO, car pour l'instant je me retrouve assez coincé.

De plus je cherche à faire cela pour l'utiliser dans une autre classe car je n'ai pas encore trouvé le moyen de faire une passerelle entre deux classes comme dans l'exemple qui suit ::

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
<?php
 
class Test{
 
	//variables
 
	public function __construct()
	{
		$test = "C'est un test";
		$essai = new TestBis($test);
	}
 
}
 
class TestBis{
 
	//variables
	private $test;
 
	public function __construct($test)
	{
		$this->test = $test;
	}
 
	public function Afficher(){
		echo $this->test;
	}
 
}
 
$test = new Test();
$essai->Afficher();
 
?>
Ici, nous nous retrouvons avec un code d'erreur car forcément PHP ne reconnait pas la variable associée à l'objet créé dans la class Test

Code Erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Notice: Undefined variable: essai in C:\Program Files\EasyPHP 2.0b1\www\Class\test.php on line 33
 
Fatal error: Call to a member function Afficher() on a non-object in C:\Program Files\EasyPHP 2.0b1\www\Class\test.php on line 33
Donc voilà au final, ce qui m'intéresserait, c'est de trouver une solution pour le deuxième cas, et s'il n'en existe pas, trouver une manière plus propre qu'un cookie ou une session pour le premier cas.

Merci d'avance pour votre aide,

Cordialement,