1

いくつかの単純なコードを機能させるのに苦労していますが、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 に答える