PHP变量在任何函数之外声明,从函数中看不到

时间:2013-07-31 18:50:35

标签: php global-variables

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

这是我尝试开始工作的代码。此代码包含在由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 

为什么变量$ location在函数cubicleAvailableSpace()中无法识别?!我认为这个PHP代码中的所有函数都被认为是“可见的”......

现在,我确信这很容易,但我整个下午都试着做这个工作......看看周围的地方,但找不到任何帮助我的回复(尽管这个网站上有很多这样的案例) ) 当然,当我用实际值(“./Treewindow/tree_structure.xml”)替换变量时,一切正常:XML文件位于正确的位置: - )

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

由于

1 个答案:

答案 0 :(得分:3)

试试这个

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

你在函数外面声明了变量,因此它在内部是不可读的。