Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 访问视图内函数中的Codeigniter数据变量_Php_Function_Codeigniter_View_Scope - Fatal编程技术网

Php 访问视图内函数中的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

我的一个视图中有一个函数,我想通过CodeIgniter的数据数组访问视图可用的变量之一

比如,;在我的控制器中,我有:

$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”访问,则会在此处抛出语法错误。