PHP中如何在运行时删除函数

PHP中的函数和类具有全局范围。这意味着即使在范围内定义它们,也可以在函数外部调用它们,反之亦然。

但是PHP不支持函数重载,并且不可能重新定义先前声明的函数。

该函数可以定义为匿名函数,并且可以在其运行完成后取消设置。

以下是相同的代码示例-

if (function_exists('get_magic_quotes_gpc') && @get_magic_quotes_gpc())
   $my_fn = create_function('&$v, $k', '$v = stripslashes($v);');
   array_walk_recursive(array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST), $my_fn);
   unset($my_fn);
}

匿名函数不能在内部调用。解决方法是使用array_walk_recursive。