declaring global variables in yii and use them in controller
boolean, function, global-variables, php, yii
Solution
You can use the class variables to achieve that, here's an example:
<?php
class ApiController extends Controller
{
public $lang = 'en';
public function beforeAction($action)
{
if(Yii::app()->session->contains('lang'))
$this->lang = Yii::app()->session['lang'];
return parent::beforeAction($action);
}
public function afterAction($action,$params)
{
Yii::app()->session['lang'] = $this->lang;
return parent::afterAction($action,$params);
}
public function actionDisplay(){
echo 'In Display action';
$this->lang = 'test'
echo $this->lang;
}
public function actionDisplay2(){
echo 'In Display2 action';
echo $this->lang;
}
}
Problem
I have been trying to declare a global variable in yii that is a boolean, and have its value changed in different action functions in the controller. Below is an example of what i am trying to achieve. in .../config/main.php i added the following array: 'params'=>array('login' => 'true',), in .../protected/controller/testController.php i added the following code: ``` <?php class ApiController extends Controller{ public $x = ''; public function actionDisplay(){ $x=Yii::app()->params['login']; //so x now has the value "true" echo $x; //this display "true" when i run this controller on this function } public function actionDisplay2(){ global $x; echo $x; //this for some reason does not contain the value true even if x is global } ``` How can i achieve this without having to assign a value in each function to the global variable? If i call the second function, it throws an error that x is not defined. My plan is to use the global variable the way you do in java e.g. ``` public class Display{ public String x = " "; public static void Display(){ x = "True"; //global variable x is assigned the String value "True" } public static void DisplayTwo(){ System.out.print("Value of x is: " + x); //this will print "Value of x is: True" } .... } So basically, this is how i want to use the global variable in Yii framework. Any suggestions how to achieve this please? ```