Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在cakePHP中声明全局变量的最佳方法是什么_Php_Oop_Cakephp_Cakephp 1.2 - Fatal编程技术网

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

在cakePHP中声明全局变量的最佳方法是什么,php,oop,cakephp,cakephp-1.2,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;}

我正在学习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";}
      }
 }
如果可以的话,请帮忙


编辑原因:

嗨,艾库勒

我对代码做了一些修改,并遵循了您的建议,但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"
        }

     }
(请注意,$newUser在调用方法时是未定义的)


您应该阅读以下内容:

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


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

@Aircule。是{$this->myVariable;}还是{$this->$myVariable;}我需要在myVaraible之前添加一个美元符号?当你访问类变量或方法时,你使用
$this->myVariable
$this->myFunction()
。你看过吗?@aircle。感谢您的帮助。请注意,这不是cakePHP特有的。这是PHP或任何OOP语言的基本特性。另外,我会在成员变量声明中使用“private”而不是“var”。为什么不使用最新版本的cake(1.3.2)?@aircle。我已经学习CakePHP1.26几个星期了,我对这个版本比较熟悉。这不是一个全局变量,而是一个类变量。如果您真的想要一个全局的in-cake,您可以使用Nik关于Configure的建议:
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";}
      }
 }