<?php
namespace Top
{
$a = "Robert";
$b = "Richard";
$c = "Maurice";
function get_a()
{
global $a;
return $a;
}
function get_b()
{
global $b;
return $b;
}
function get_c()
{
global $c;
return $c;
}
echo namespace\Middle\get_a();
echo namespace\Middle\Bottom\get_c();
echo namespace\get_b();
}
namespace Top\Middle
{
$a = "Dauraun";
$b = "Khalid ";
$c = "Humberto";
function get_a()
{
global $a;
return $a;
}
function get_b()
{
global $b;
return $b;
}
function get_c()
{
global $c;
return $c;
}
}
namespace Top\Middle\Bottom
{
$a = "Terry";
$b = "Jesse";
$c = "Chris";
function get_a()
{
global $a;
return $a;
}
function get_b()
{
global $b;
return $b;
}
function get_c()
{
global $c;
return $c;
}
}
?>
したがって、上記のコードスニペットでは、対応する名前空間でglobalキーワードを使用する関数を使用して正しい変数コンテンツを表示しようとしていますが、目的の結果は得られていません。返される変数の内容は、echoステートメントが使用されている名前空間の内容であり、指定された名前空間からのものではありません。出力は「RobertMauriceRichard」です。誰か説明してもらえますか?おそらく、名前空間にある関数内の「global」キーワードの私の部分の誤解ですか?