gpt4 book ai didi

php - 如何在 PHP 运行时禁用用户定义的函数和类?

转载 作者:行者123 更新时间:2023-12-05 07:55:00 26 4
gpt4 key购买 nike

是否可以在运行时禁用用户定义的函数和/或类?我不想重载函数,只是像 disable_functionsdisable_classes 指令那样禁用它。

最佳答案

也许您必须包装要禁用的功能。

$disabled_funcs = [];

// original code
function func ($msg) {
echo "$msg\n";
}

//The wrapped one:

function _func () {
global $disabled_funcs;
$func = substr (__FUNCTION__, 1);
if (isset($disabled_funcs[$func]))
throw new Exception ("Function $func is disabled.");
return call_user_func_array ($func, func_get_args());
}

function disable_func ($name) {
global $disabled_funcs;
$disabled_funcs[$name] = 1;
}

function enable_func ($name) {
global $disabled_funcs;
if (isset($disabled_funcs[$name]))
unset ($disabled_funcs[$name]);
}

//Call the function:
_func ("Func not disabled.");
disable_func ("func");
try {
_func ("Exception will be raised, this will not be displayed");
} catch (Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
enable_func ("func");
_func ("Func enabled");

参见 fiddle :http://ideone.com/yQaAtq

关于php - 如何在 PHP 运行时禁用用户定义的函数和类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30462902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com