php包含未命中变量

时间:2013-05-21 19:50:59

标签: php variables include

我有一个文件conf.php,其中包含这样的已定义变量

conf.php

$var1='some value';
$var2='some value';
$var3='some value';

我将此文件包含在另一个文件中的函数中,如

funcs.php

function myFunction($value1 ,$value2){
include '../includes/conf.php';
echo $var1;  //<= this give and empty string for all vars in conf.php
}

我似乎无法弄清楚问题

3 个答案:

答案 0 :(得分:0)

您没有定义对根目录的引用。添加

__DIR__ 

它应该解决你的问题。

include __DIR__ . '/../includes/conf.php';

如果不起作用: 我可能会弄错,但您可能必须在调用函数(在本例中为“myFunction”)的范围内声明这些变量是全局的,以访问它们。 否则我的唯一解释是你的包含路径不正确

function myfunction(value1, value2){
    include __DIR__ . '/../includes/conf.php';
    global $var1;
    echo $var1;
}

希望它有所帮助。

答案 1 :(得分:0)

您是否有理由不希望将这些变量定义为常量?如果值永远不会改变,并且你不希望它们永远变质,我会强烈推荐它。 (看作这是一个配置文件。) http://php.net/manual/en/language.constants.php

否则我会看到包含的文件是否实际正在加载并查看是否在本地引用变量,您可能需要将变量范围更改为全局,因为变量范围可能只是该函数。 http://php.net/manual/en/language.variables.scope.php

答案 2 :(得分:0)

我通过使用$ GLOBALS变量解决了这个问题,所以在我的函数中,我只需要做

function myFunction($value1 ,$value2){
echo $GLOBALS['value1'];  //<= this works well
}