Какой лучший способ объявить глобальную переменную в cakePHP - PullRequest
0 голосов
/ 17 июля 2010

Я изучаю тортPHP 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";}
      }
 }

Пожалуйста, помогите, если сможете.


отредактированная причина:

Привет 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 ]

6 голосов
/ 17 июля 2010
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

3 голосов
/ 17 июля 2010

Посмотрите на класс Configure.Вы можете Configure :: write ('var', $ value) или Configure :: read ('var'), и это доступно во всех частях приложения, т.е. вы можете определить переменную в AppController :: beforeFind () и получить доступэто в Model, View и всех контроллерах, конечно.

Но для вашего случая лучший ответ - переменные класса, описанные в ответе выше.:)

...