Kohana全球被清除?

时间:2011-06-23 23:33:57

标签: php kohana global-variables

我之前写了一个问题试图在Kohana中使用控制器,但我放弃并重写了该文件。所以现在,我在Kohana控制器中有这个PHP脚本。控制器正在渲染的视图是“需要”一个php文件,所以我可以执行一些第三方功能。我遇到了一个重大问题并开始调试。问题似乎是包含文件中的函数无法从同一文件中访问函数外部的变量。似乎Kohana正在以某种方式清除全局......

示例:

//controller.php
require_once("ccfunctions.php");

//ccfunctions.php
$test = 'something';
function test(){
  global $test;
  echo $test;
}
test();
//This does not produce anything

对此有什么想法吗?

编辑: 实际上,上面的示例甚至从我正在呈现的视图文件中也不起作用。忘记包含的文件。我意识到Kohana试图强制执行MVC模型,但这很荒谬。为什么我不能在视图文件中创建函数并调用全局变量?

2 个答案:

答案 0 :(得分:2)

在两种情况下,您都需要为变量指定global

//controller.php
require_once("ccfunctions.php");

//ccfunctions.php
global $test;
$test = 'something';
function test(){
  global $test;
  echo $test;
}
test();
//This does not produce anything

顺便说一下,这真的很奇怪,我相信在没有使用global

的情况下有任何解决办法

答案 1 :(得分:2)

不要使用全局变量。为什么要在使用全局变量时使用OOP框架?