在cakePHP中声明全局变量的最佳方法是什么

时间:2010-07-17 17:12:06

标签: php oop cakephp cakephp-1.2

我正在学习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"
        }

     }

2 个答案:

答案 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是未定义的。)

您应该阅读:http://php.net/manual/en/language.oop5.php

答案 1 :(得分:3)

看看Configure类。您可以配置:: write('var',$ value)或Configure :: read('var'),这可以在应用程序的所有部分访问,即您可以在AppController :: beforeFind()中定义变量,并且您可以访问它当然是模型,视图和所有控制器。

但是对于你的情况,最好的答案是上面的答案中描述的类变量。 :)