Php 访问视图内函数中的Codeigniter数据变量
我的一个视图中有一个函数,我想通过CodeIgniter的数据数组访问视图可用的变量之一 比如,;在我的控制器中,我有:Php 访问视图内函数中的Codeigniter数据变量,php,function,codeigniter,view,scope,Php,Function,Codeigniter,View,Scope,我的一个视图中有一个函数,我想通过CodeIgniter的数据数组访问视图可用的变量之一 比如,;在我的控制器中,我有: $this->load->view('someview', array( 'info' => 'some info' )); 现在,在我的视图中,我有一个函数,我希望能够从该函数范围内访问变量$info 这可能吗?我尝试过,但在我的视图中使用globalssomeview.php不起作用 function func_in_view(){ glo
$this->load->view('someview', array(
'info' => 'some info'
));
现在,在我的视图中,我有一个函数,我希望能够从该函数范围内访问变量$info
这可能吗?我尝试过,但在我的视图中使用
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)
在
但它的目的只是使它可用于该控制器的任何函数中的任何视图文件。我尝试了上面的代码
global$info代码>但它仍然不起作用。
您可能需要通过将其作为参数传递来解决此问题
尝试将其包含在someview.php
=>print''中;印刷(全球);打印“”代码>和通过$this->load->view传递的变量不包括在内。在控制器中:
$GLOBALS['var_available_in_function'] = $value;
function get_var() {
global $var_available_in_function;
return $var_available_in_function;
}
你的职能:
$data['variable1'] = "hello world";
$this->load->view('showpage',$data);
我通过在视图中创建一个全局变量来解决这个问题,然后将传入的$data值分配给全局变量。这样,就可以在视图的函数中读取信息,而无需将变量传递给函数
例如,在控制器中,您有:
global $local_variable = $variable1;
function view_function() {
global $local_variable;
echo $local_variable;
}
view_function();
然后在showpage.php视图中,您有:
global $local_variable = $variable1;
function view_function() {
global $local_variable;
echo $local_variable;
}
view_function();
希望这有帮助 看不出为什么不,这应该像使用助手一样。@simnom:与Javascript不同,Javascript有一个作用域查找链(如果在本地作用域中找不到变量,它会在作用域链的更高位置查找),PHP只能使用本地或全局变量。因此,视图中的变量在函数中不可用。那么为什么不将变量传递给函数呢。您已经可以访问$info,只需将其传递给函数名($info)。您是对的。我误读了这篇文章,删除了我的答案。我认为您的答案是正确的。问题是,如果您有许多从数组生成的变量,例如用户的详细信息,并且您希望每个值都位于它自己的变量中,以供视图“global$local_variable=$variable1”访问,则会在此处抛出语法错误。