我的一个视图中有一个函数,我想通过CodeIgniter的数据数组访问视图可用的一个变量。
例如;在我的控制器中我有这个:
$this->load->view('someview', array(
'info' => 'some info'
));
现在,在我看来,我有一个函数,我希望能够从该函数范围内访问变量$info
。
这可能吗?
答案 0 :(得分:4)
在您的控制器中:
$GLOBALS['var_available_in_function'] = $value;
你的职能:
function get_var() {
global $var_available_in_function;
return $var_available_in_function;
}
答案 1 :(得分:3)
我试过了,但在我的视图globals
中使用someview.php
无效..
function func_in_view(){
global $info;
print_r ($info); // NULL
}
您可能需要将此参数作为参数传递给您的函数,以便它可用。
function func_in_view($info){
print_r ($info); // NULL
}
我读过这个方法$this->load->vars($array)
在http://codeigniter.com/user_guide/libraries/loader.html中
但它的目的只是让它可用于该控制器的任何功能的任何视图文件。我在global $info;
上方尝试了我的代码,但仍然无效。
您可能需要将其作为参数传递来执行变通办法。
请尝试在someview.php
=&gt;中加入此内容<{1}}和print "<pre>";print_r($GLOBALS);print "</pre>";
传递的变量不包含在内。
答案 2 :(得分:0)
我通过在视图中创建一个全局变量,然后将传入的$ data值分配给全局变量来解决这个问题。这样,可以在视图函数中读取信息,而无需将变量传递给函数。
例如,在控制器中,您有:
$data['variable1'] = "hello world";
$this->load->view('showpage',$data);
然后在showpage.php视图中,您有:
global $local_variable = $variable1;
function view_function() {
global $local_variable;
echo $local_variable;
}
view_function();
希望这有帮助!