Si les variables sont définies dans l'espace global, alors vous devez les référencer dans l'espace global au sein de vos méthodes de classe:
include 'var.php';
class userSession{
/* all the code */
public function getVariables(){
global $var1, $var2;
echo $var1,' ',$var2,'<br />';
$var1 = 'Goodbye'
}
public function getOtherVariables(){
global $var1, $var2;
echo $var1,' ',$var2,'<br />';
}
}
$test = new userSession();
$test->getVariables();
$test->getOtherVariables();
Ce n'est pas une bonne idée. L'utilisation de variables globales est généralement une mauvaise pratique, et une indication que vous ne comprenez pas vraiment les principes de la POO.
Dans votre deuxième exemple, vous définissez les variables dans l'espace local pour les différentes méthodes
class userSession{
/* all the code */
public function getVariables(){
include 'var.php';
echo $var1,' ',$var2,'<br />';
$var1 = 'Goodbye'
}
public function getOtherVariables(){
include 'var.php';
echo $var1,' ',$var2,'<br />';
}
}
$test = new userSession();
$test->getVariables();
$test->getOtherVariables();
Parce que chaque variable est définie indépendamment dans l'espace local de méthode, en changeant var1 $ en getVariables() n'a pas effet sur var1 $ en getOtherVariables()
Une troisième alternative consiste à définir vos variables comme des propriétés de classe:
class userSession{
include 'var.php';
/* all the code */
public function getVariables(){
echo $this->var1,' ',$this->var2,'<br />';
$this->var1 = 'Goodbye'
}
public function getOtherVariables(){
echo $this->var1,' ',$this->var2,'<br />';
}
}
$test = new userSession();
$test->getVariables();
$test->getOtherVariables();
Cette définit les variables comme des propriétés dans l'espace userClass, de sorte qu'elles peuvent être accédées par toutes les méthodes dans l'instance de userClass. Notez l'utilisation de $ this-> var1 plutôt que $ var1 pour accéder aux propriétés. Si vous avez plusieurs instances de userClass, les propriétés dans chaque instance peuvent être différentes, mais dans chaque instance, les propriétés sont cohérentes dans toutes les méthodes de cette instance.
Quels sont les contenus de var.php. –
Dans votre premier exemple, vous incluez le contenu de var.php dans l'espace global. Dans le deuxième exemple, vous incluez le contenu de var.php dans l'espace local pour les méthodes de votre classe. Qu'est-ce que vous essayez réellement de faire ici? –
Supposons seulement deux variables. ' Php $ var1 =" bonjour "; $ var2 = "monde"; ?> ' –