一直努力使一些簡單的代碼工作,但面臨着一個變量的全局/局部範圍的問題。PHP在任何函數之外聲明的變量,不可見於函數
這是我嘗試去上班的代碼。此代碼包含在由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公認的()?我認爲這將被視爲「可見」,從這個PHP代碼中的所有功能...
現在,我相信這很容易,但我試了整個下午,使這項工作......看着周圍的所有但找不到任何幫助我的回覆(雖然這個網站有很多這樣的例子) 當然,當我用它的實際值(「./Treewindow/tree_structure.xml」)替換變量時,一切正常:該XML文件是在正確的地方:-)
你能幫我找到什麼是錯的,並使這個$位置變量可見的兩個函數?
感謝
如果您希望將其導入到該函數的作用域中,則必須在函數內聲明它爲'global $ location;'。 – nickb
我會採取面向對象的方法來處理這種情況。像這裏http://stackoverflow.com/questions/2483675/in-php-how-to-call-a-variable-inside-one-function-that-was-defined-previously – Vector