谢谢xuzuning斑竹,貌似没有用,还是会报错 $name='linjuming'; class my_template{ function require_part($part_name){ if(file_exists($part_name.'.php')){ require($part_name.'.php'); } unset($part_name); $GLOBALS = array_merge($GLOBALS, get_defined_vars()); } }$tmp=new my_template(); $tmp->require_part('oop') Notice: Undefined variable: name in D:\phpnow\htdocs\laji\oop.php on line 2
噢,其实 $GLOBALS 中确实有了 name 项 改成这样凑合一下吧class my_template{ function require_part($part_name){ if(file_exists($part_name.'.php')){ require($part_name.'.php'); } unset($part_name); return get_defined_vars(); } }
$name ='linjuming';
class my_template{
function require_part($part_name){
if(file_exists($part_name.'.php')){
require($part_name.'.php');
}
}
}
$tmp=new my_template();
$tmp->require_part('opp');第二我没看到你的opp.php文件怎么输出,但是全局变量引用需要先global $name;才可以
if(file_exists($part_name.'.php')){
require($part_name.'.php');
}
unset($part_name);
$GLOBALS = array_merge($GLOBALS, get_defined_vars());
}
$name='linjuming';
class my_template{
function require_part($part_name){
if(file_exists($part_name.'.php')){
require($part_name.'.php');
}
unset($part_name);
$GLOBALS = array_merge($GLOBALS, get_defined_vars());
}
}$tmp=new my_template();
$tmp->require_part('oop')
Notice: Undefined variable: name in D:\phpnow\htdocs\laji\oop.php on line 2
改成这样凑合一下吧class my_template{
function require_part($part_name){
if(file_exists($part_name.'.php')){
require($part_name.'.php');
}
unset($part_name);
return get_defined_vars();
}
}
$tmp=new my_template();
extract($tmp->require_part('oop'));//注意这里echo $name;
echo $name;可以输出,测试通过。
依然不行谢谢jzh2004,不过我不想用global方式,英文part文件很多,如果part文件里面又有很多全局变量,这样做影响效率