-1

我在 index.php 中有这个

require('include\inc\config.inc');

当我创建一个需要来自 config.inc 的变量的函数时,当我运行时,它说该变量丢失了,我需要重新声明 config.inc,否则该函数将永远无法工作。有办法解决吗?现在我有这个

function test(){
require('include\inc\config.inc');
echo $tmp;    
}

代替

   require('include\inc\config.inc');
   function test(){    
    echo $tmp;    
    }
4

3 回答 3

2

您应该阅读有关变量范围的信息。该$tmp变量是全局的,并且在任何函数中都不可见,除非用global

require('include\inc\config.inc');
function test(){    
global $tmp;
echo $tmp;    
}
于 2012-08-24T10:44:24.147 回答
0

如前所述,您的变量超出了 test() 函数的范围,使用全局变量不被认为是好的做法。您需要将变量 $tmp 传递给函数 test() ,如下所示:-

function test($tmp)
{
    echo $tmp;
}

然后像这样调用函数:-

require_once 'include/inc/configure.inc'
test($tmp);
于 2012-08-24T10:53:25.293 回答
0

我不精通 PHP,但你不能写:

require('include\inc\config.inc');
function test() use ($tmp) {
  echo $tmp;
}
于 2012-08-24T10:48:14.207 回答