[PHP-users 32289] 関数内からinclude_onceコール時のグローバル変数の挙動について
菊澤 正明
kikuzawa @ cyber-coo.com
2007年 6月 8日 (金) 11:18:34 JST
菊澤 と申します。
関数内から、include_onceをコールした場合に、
インクルードしたファイル内でグローバル変数を定義しているにも
関わらず、グローバル変数が未定義となってしまいます。
下記に示すコードのinc2.phpで
$GLOBALS['global2'] = "DEF";
とすれば、test.phpの未定義エラーは回避できるようですが、
inc2.php内で$global2が未定義エラーとなってしまいます。
グローバル変数のスコープがおかしくなっているように思えるのですが、
これは仕様なのでしょうか?
環境は、
Apache2.0.59
PHP5.2.0
Windows XP プロフェッショナル
です。
下記にコードを示します。
○test.php
<?php
function load_file()
{
include_once("inc2.php");
}
include_once("inc1.php");
load_file();
print_r($GLOBALS); // global2のエントリがない
echo $global1;
echo $global2; // この変数が未定義となる
?>
○inc1.php
<?php
$global1 = "ABC";
○inc2.php
<?php
$global2 = "DEF";
--------------------------------------------
菊澤 正明 mailto:kikuzawa @ cyber-coo.com
PHP-users メーリングリストの案内