-2

可能重复:
如何在函数中使用包含?

我有两个文件

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
4

3 回答 3

1

当你这样做时

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

它包括

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

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

请参阅此 SO 答案。

于 2012-06-24T17:19:23.810 回答
0

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

global $var1;

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

或者

$GLOBALS['var1'] = "foo";
$GLOBALS['var1'] .= "bar";
于 2012-06-24T17:14:20.397 回答
0

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

如果您将它们声明为global,它将起作用。

于 2012-06-24T17:15:42.007 回答