Ale*_*lex 3 php variables function unset
例如,我有这个功能:
function foo($whaaaat){
$var1 = 'a';
$a = 1;
$b = 2;
...
// here unset all variables defined above (including arguments)
require 'somefile.php';
}
Run Code Online (Sandbox Code Playgroud)
那么,我可以在需求点之前取消设置所有这些变量吗?
显然没有在每个变量上手动调用unset,因为我想出了自己:)
是否有一些功能可以做到这一点?
你可以包装require
在一个匿名函数:
function foo($a){
$b = 2;
call_user_func(function() {
require 'somefile.php';
});
}
Run Code Online (Sandbox Code Playgroud)
假设这些函数内变量都没有被声明为全局变量,你可以尝试类似的东西
array_diff(get_defined_vars(), $GLOBALS)
Run Code Online (Sandbox Code Playgroud)
获取局部变量的列表,然后循环结果以取消设置它们.