1

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

这是我尝试开始工作的代码。此代码包含在由 Javascript 的 AJAX GET 过程调用的 PHP 文件中。以下代码块中均未出现任何 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 变量在两个函数中都可见吗?

谢谢

4

1 回答 1

3

尝试这个

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

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

于 2013-07-31T18:55:03.463 回答