如何在函数中使用其他PHP包含文件中的变量?

时间:2011-04-08 04:03:07

标签: php variables scope global

我有这个PHP包含文件,其中包含我将使用的所有变量。如何在函数中的另一个文件中使用所有这些变量,而不将它们再次声明为该函数中的全局变量?

3 个答案:

答案 0 :(得分:5)

函数无法在不包含它们或将它们声明为全局变量或从全局变量中获取外部变量的情况下访问它们。在过去,我创建了一个数组和易于读取的变量。然后我引用数组变量,并且必须按名称到达变量。

答案 1 :(得分:2)

将它们作为参数传递给函数。如果要做很多事情,可以考虑使用对象而不仅仅是函数,然后在主文件中实例化对象的实例。或者正如Craig所提到的,除了主函数参数之外,还要在options数组中传递全局变量。

答案 2 :(得分:1)

您可以使用以下命令访问全局范围的所有变量:

$GLOBALS['varname']

为了避免使用$ GLOBALS,您可以自动“全局化”变量:

将其放在您的函数中以“导入”所有变量:

foreach($GLOBALS as $key=>$val){
    if(!isSuperGlobal($key))
        global $$key;
}

并将此帮助功能放在功能之外的其他地方

function isSuperGlobal($name){
    switch($name){
        case 'GLOBALS':
        case '_SERVER':
        case '_GET':
        case '_POST':
        case '_FILES':
        case '_COOKIE':
        case '_SESSION':
        case '_REQUEST':
        case '_ENV':        return true;    break;
        default:            return false;   break;
    }
}