index.php
" " " file.php
" と " fns.php
"の 3 つのファイルがあるとします。
最初の例 (動作します):
index.php :
<?php
$var = "Variable Data";
include "file.php";
?>
ファイル.php:
<?php
var_dump($var); #Output will be : string(13) "Variable Data"
?>
2番目の例(機能しません):
index.php :
<?php
include "fns.php";
$var = "Variable Data";
load("file.php");
?>
fns.php :
<?php
function load($file) { include $file; }
?>
file.php
<?php
var_dump($var); #Output will be : NULL
?>
のような関数を使用してファイルをインクルードし、load()
変数を追加せずに機能させ続けるにはどうすればよいGlobal $var;
ですか?
私の解決策:
<?php
function load($file)
{
$argc = func_num_args();
if($argc>1) for($i=1;$i<$argc;$i++) global ${func_get_arg($i)};
include $file;
}
#Call :
load("file.php", "var");
?>