kohana的视图变量范围有什么问题?

时间:2012-09-10 22:25:30

标签: variables view kohana scope

为了快速总结我的问题,我只是将(http://php.net/manual/en/language.variables.scope.php)的示例复制到我的一个视图中,并想知道为什么它在我的屏幕上没有回应。

这是php.net的例子:

<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
} 

Sum();
echo $b;
?>

我预计屏幕上会显示'3',但$ b仍然会'2'返回.. 好吧,我用不同的例子测试了这个行为大约3个小时,似乎kohana做了一些棘手的事情。 我以为Kohana只将View :: _数据提取到本地范围内,一切都会好的,但现在我对此一无所知。

有人可以解释一下这种行为吗?

How can I wrap PHP legacy code in Kohana?无法帮助我..

顺便说一句,对不起我的语言错误!

更新

我知道使用全局变量很糟糕,但我的干净方法昨天不起作用.. 但现在我不知道为什么一切都有效,也许有一个缓存问题。

但除此之外,我理解了我给出的例子中的错误,谢谢。 似乎它与输出缓冲无关。

1 个答案:

答案 0 :(得分:3)

你可能不在全球范围内。因此,所有变量都应该加上global之类的

<?php
global $a = 1;
global $b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
} 

Sum();
echo $b;
?>
PS:全局变量是万恶之源。没有它们,一切都可以而且应该实施。