如何在函数中使用另一个PHP包含文件中的变量



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

函数不能访问外部变量,除非将它们包括在内,或者将它们声明为全局变量,或者从全局变量中获取它们。在过去,我创建了数组和易于读取的变量。然后我引用数组变量,并且必须通过名称访问该变量。

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

可以使用以下命令访问全局作用域的所有变量:

$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;
    }
}

相关内容

  • 没有找到相关文章

最新更新