Php codeigniter视图参数“;“缓存”;

Php codeigniter视图参数“;“缓存”;,php,codeigniter,caching,views,Php,Codeigniter,Caching,Views,我已经在CI工作了将近一年,我几乎可以解决我遇到的任何问题 但现在我遇到了一个类似于视图参数缓存的问题 范例 控制器方法: public function cache_test() { $data['dummy'] = "foobar"; $this->load->view('cache_view', $data); // should output "foobar" unset($data['dummy']); $this->load-&g

我已经在CI工作了将近一年,我几乎可以解决我遇到的任何问题

但现在我遇到了一个类似于视图参数缓存的问题

范例

控制器方法:

public function cache_test()
{
    $data['dummy'] = "foobar"; 
    $this->load->view('cache_view', $data); // should output "foobar"

    unset($data['dummy']);
    $this->load->view('cache_view', $data); // should output nothing
}
视图:

我找到了一个解决方法,您必须将变量设置为空字符串

$data['dummy'] = ""
然后将if更改为

if(isset($dummy) && $dummy != "")
但这对我来说似乎不太干净,像这样的东西让我很烦:/

我们非常感谢您向正确方向提供的任何帮助或指点

编辑:
我想用它来加载菜单的几个项目,其中一些视图参数是可选的。然后,这些可选参数决定我是否在视图中显示某些内容。

您可以尝试以下代码,也许这将解决您的问题

public function cache_test()
{
    $data['dummy'] = "foobar"; 
    $this->load->view('cache_view', $data); // should output "foobar"

    unset($data);
    $this->load->view('cache_view', $data); // should output nothing
}

您的建议在第二个视图加载时产生错误,因为$data在此未定义。另外,我不想取消设置所有参数。
if(isset($dummy) && $dummy != "")
public function cache_test()
{
    $data['dummy'] = "foobar"; 
    $this->load->view('cache_view', $data); // should output "foobar"

    unset($data);
    $this->load->view('cache_view', $data); // should output nothing
}