Php Laravel-修改并从@include返回变量

Php Laravel-修改并从@include返回变量,php,laravel,laravel-4,Php,Laravel,Laravel 4,我使用 @include('template.included') 在包含此模板之前,我定义 $page = 0; 在模板内部,多次调用 $page++; 在包含的模板内,值正确地递增,但是在模板外,$page变量似乎保持不变-它看起来像@include创建了您使用的每个var的自己的副本 我需要这个$page变量从这些模板内部进行更新,并将其值返回到我的主模板-我是否缺少一些简单的东西 感谢您的建议 编辑: 我的问题,例如: $page = 0; @include('template.i

我使用

@include('template.included')
在包含此模板之前,我定义

$page = 0;
在模板内部,多次调用

$page++;
在包含的模板内,值正确地递增,但是在模板外,$page变量似乎保持不变-它看起来像@include创建了您使用的每个var的自己的副本

我需要这个$page变量从这些模板内部进行更新,并将其值返回到我的主模板-我是否缺少一些简单的东西

感谢您的建议

编辑:

我的问题,例如:

$page = 0;
@include('template.included') //This calls $page++ 5 times
echo $page; //returns 0

我需要$page返回4,而不是0。你的假设是正确的,Laravel的视图系统确实为它加载的每个视图创建了一个新的范围。包含视图时使用的方法执行以下操作:

newview($this,$this->getEngineFromPath($path),$View,$path,$data)
它创建一个新视图并将数据传递给它,这实际上意味着它发送了一份信息的副本。由于没有参数(已弃用,并且在较新的PHP版本中已删除),所以无法完成您想要的操作


尽管如此,你的方法似乎有缺陷。在我看来,您正在视图中构建分页,这是您不应该在视图中执行的操作。Laravel已经提供了一种非常简单的创建方法,您也许应该对此进行研究。

我在访问模板中的变量时没有问题,但是我希望在包含的文件中所做的更改能够更新模板之外的变量。我将添加另一个示例的编辑,希望能让它更清晰