1

我正在尝试使用函数包含一个文件,并且我定义了几个变量。我想访问包含的文件以访问变量,但是因为我使用函数包含它,所以它无法访问。示例场景如下:

即index的内容如下

index.php

<?
...
function include_a_file($num)
{
  if($num == 34)
    include "test.php";
  else
    include "another.php"
}
...
$greeting = "Hello";
include_a_file(3);
...
?>

而test.php的内容如下

test.php

<?
echo $greeting;
?>

测试文件抛出警告说$greeting未定义。

4

2 回答 2

2

这行不通。includerequire表现得好像您包含的代码实际上是执行包含/要求时文件的一部分。因此,您的外部文件将在该include_a_file()函数的范围内,这意味着$greeting超出该函数的范围。

您必须将其作为参数传递,或者在函数中使其成为全局变量:

function include_a_file($num, $var) {
                              ^^^^-option #1
   global $greeting; // option #2
}

$greeting = 'hello';
include_a_file(3, $greeting);
于 2013-06-27T14:25:36.760 回答
0

你确定你的正确包括吗?请记住 PHP 区分大小写:

$Test = "String"; 
$TEst = "String"; 

两个完全不同的变量..

此外,不要只是回显一个变量,而是将其包装在一个isset条件中:

if (isset($greeting)){
 echo $greeting;
} // Will only echo if the variable has been properly set.. 

或者你可以使用:

if (isset($greeting)){
  echo $greeting;
}else{
  echo "Default Greeting"; 
}
于 2013-06-27T14:22:55.607 回答