我正在学习cakePHP 1.26
我有一个控制器,它有两个功能
我想让$ myVariable成为一个全局变量,这样控制器中的两个函数都可以共享它,但我不确定这是否是在cakePHP中声明全局变量的最佳方式:
class TestingController extends AppController {
var $myVariable="hi there";
function hello(){
if($newUser){echo $myVariable;}
}
function world(){
if($newUser=="old"){$myVariable="hi my friends";}
}
}
如果可以,请帮忙。
编辑原因:
Hi Aircule,
我对代码进行了一些改动并遵循了你的建议,但myVariable的值根本没有改变:
class TestingController extends AppController {
var $myVariable="hi there";
function hello(){
echo $this->myVariable;
}
function world(){
$this->myVariable="hi my friends";
}
function whatValue(){
echo $this->myVariable; // still output "hi there"
}
}
答案 0 :(得分:6)
class TestingController extends AppController {
var $myVariable="hi there";
function hello(){
if($newUser){echo $this->myVariable;}
}
function world(){
if($newUser=="old"){$this->myVariable="hi my friends";}
}
}
(注意,当你调用方法时,$ newUser是未定义的。)
答案 1 :(得分:3)
看看Configure类。您可以配置:: write('var',$ value)或Configure :: read('var'),这可以在应用程序的所有部分访问,即您可以在AppController :: beforeFind()中定义变量,并且您可以访问它当然是模型,视图和所有控制器。
但是对于你的情况,最好的答案是上面的答案中描述的类变量。 :)