PHP变量在任何函数外部声明,在函数中不可见


PHP Variable declared outside of any function, not visible from functions

一直在努力使一些简单的代码正常工作,但面临一个变量的全局/局部范围的问题。

这是我试图开始工作的代码。此代码包含在一个PHP文件中,该文件由Javascript中的AJAX GET过程调用。以下代码块中没有出现任何GET变量。

$location = "./Treewindow/tree_structure.xml";
function openXML($url) {
if (file_exists($url)) {
    $xml = simplexml_load_file($url);
    } 
else {
    echo("Failed to open XML at ".$url);
    exit;
    }
}
function cubicleAvailableSpace() { 
    openXML($location);
}

当我调用最后一个函数时:

cubicleAvailableSpace();

我得到:

Failed to open XML at 

为什么在函数cubicleAvailableSpace()中无法识别变量$location?!我认为从这个PHP代码中的所有函数来看,它都是"可见的"。。。

现在,我确信这很容易,但我整个下午都在努力让它发挥作用。。。到处都找了,但找不到任何对我有帮助的回复(尽管这个网站上有很多这样的案例)当然,当我用变量的实际值("./Treewindow/tree_structure.xml")替换变量时,一切都正常:xml文件位于正确的位置:-)

你能帮我找出问题所在,让这个$location变量在两个函数中都可见吗?

感谢

尝试这个

function cubicleAvailableSpace() { 
  global $location;
  openXML($location);
}

您在函数外部声明了变量,因此函数内部不可读。