注意:未定义的变量:第7行的\ www \ test.php中的var1

时间:2012-06-24 17:08:46

标签: php

  

可能重复:
  How to use include within a function?

我有两个文件

inc.php文件

<?php
$var1 = "foo";
$var1 .= "bar";
?>

test.php文件

<?php
function getcontent($file) {
 include ($file);
}

getcontent('inc.php');
echo $var1;
?>

当我运行test.php时,它会在输出中给出错误

Notice: Undefined variable: var1 in \www\test.php on line 7 

但是当我将test.php文件更改为此

<?php
include ('inc.php');
echo $var1;
?>

它的作品,并给我输出精美

foobar

3 个答案:

答案 0 :(得分:1)

当你这样做时

function getcontent($file) {
    include ($file);
}
getcontent('inc.php');

它包含为

function getcontent($file) {
    $var1 = "foo";
    $var1 .= "bar";
}

实际上你的变量被包含在函数内部并且在函数外部不可见,因此会出现错误消息。

See this SO answer.

答案 1 :(得分:0)

您必须将$ var1声明为全局变种。

global $var1;

$var1 = "foo";
$var1 .= "bar";

$GLOBALS['var1'] = "foo";
$GLOBALS['var1'] .= "bar";

答案 2 :(得分:0)

当您将文件包含在getcontent函数中时,vars的行为就像在那里定义的那样,并且对外部不可见。

如果你将它们声明为global,那就可以了。