If the variables are defined in the global space, then you need to reference them in the global space within your class methods:
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();
This is not a good idea. Use of global variables is generally bad practise, and an indication that you don't really understand the principles of OOP yet.
In your second example, you're defining the variables in the local space for the individual methods
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();
Because each variable is defined independently within local method space, changing $var1 in getVariables() has no affect on $var1 in getOtherVariables()
A third alternative is to define your variables as class properties:
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();
This defines the variables as properties in the userClass space, so they can be accessed by all methods in the instance of userClass. Note the use of $this->var1 rather than $var1 to access the properties. If you have multiple instances of userClass, the properties in each instance can be different, but within each instance, the properties are consistent across all methods of that instance.