从另一个功能回采功能
问题描述:
在PHP中,是否有可能,我可以停止从内部功能的功能?例如从另一个功能回采功能
function_1(){
......
function2();
....
}
我可以停止功能1使用函数2句子,但避免回采全脚本???
非常感谢!
答
如果捕获第二个函数的返回值,则可以执行此操作。
function my_first_function() {
// some code
if(!my_second_function()) {
return;
}
}
function my_second_function() {
return false;
}
my_first_function();
当然,您需要对其进行修改以满足您的需求,但这应该让您开始。
答
您可以使用RunKit extension,它允许您重新定义/重命名函数。默认情况下,它只允许在用户定义的函数上完成这项工作,但是还有一个php.ini设置可以使其用于内部函数。
,将让你做这样的事情:
runkit_function_rename('print', 'internal_print');
function print(...) {
echo 'welcome to my own implementation of print';
}
然而,内部功能搞乱基本上可以打破PHP,所以在你自己的风险。
+0
这就是我需要的,但问题是,并非所有的erver都有PECL! – 2011-03-08 04:02:31
+1
虽然它只是唯一实用的选择。如果你需要禁用这样的功能,那么你应该重新考虑你的安全模型。 – 2011-03-08 04:07:59
当你说“停止”时,你能解释一下你的意思吗? – Charles 2011-03-08 03:41:57
像“返回false”,但我不能把返回function2();停止执行。 – 2011-03-08 03:42:52
如果你将它作为验证或验证的一部分,你可以抛出一个异常并且有一些外部函数来捕获它。 – Thai 2011-03-08 03:50:21