0

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

配置文件

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

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

函数.php

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

我似乎无法找出问题所在

4

3 回答 3

0

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

__DIR__ 

它应该可以解决您的问题。

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

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

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

希望能帮助到你。

于 2013-05-21T19:58:54.447 回答
0

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

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

于 2013-05-21T20:18:01.087 回答
0

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

function myFunction($value1 ,$value2){
echo $GLOBALS['value1'];  //<= this works well
}
于 2013-05-30T09:55:41.883 回答