両方のインクルードが同じページに読み込まれ、変数が既にグローバル スコープに存在する場合、すべての関数は global ステートメントで変数にアクセスできます。すべてがすでにグローバルであるため、ステートメントはグローバル スコープでは必要なく、関数内でのみ必要です。これにより、関数は変数をグローバル スコープにキャストすることで変数を共有することもできます。
ただし、これには多くの危険があり、完全に認識しているわけではありません。命名規則が緩和されると非常に不安定になる可能性があるため、大規模で複雑なアプリケーションではグローバル スコープを慎重に使用することをお勧めします。
基本的には、
function arrow() { global $a; $a = "arrow"; return $a; }
function sky() { global $b; $b = "sky"; return $b; }
echo "I shot an " . arrow() . " into the " . sky() . ".";
echo "I shot an $a into the $b.";
これは子供の遊びですが、変数がどのように公開され、保護されずにそこに座っているかを示しています。ここで、別の関数が登場して、すべてをバラバラにすることができます。
function whammo() { global $a, $b; $c = $a; $a = $b; $b = $c;}
echo "I shot an " . arrow() . " into the " . sky() . ".";
whammo();
echo "I shot an $a into the $b.";
私が何を意味するか分かりますか?
あなたの解決策はおそらく、この「グローバル」を必要とするすべての関数が含まれている何らかのクロージャーにあります。それははるかによく保護されます。