如何在functionName函数执行完毕后运行enableSave函数?回调用法求助
实现方法
方案一:直接调用(最直接简单)
如果不需要动态调整执行完后的操作,直接在函数核心逻辑结束后调用enableSave()即可,不用额外引入回调:
function functionName($results) { // 这里写你的核心业务逻辑 disableSave(); enableSave(); // 函数执行完毕后自动调用 }
方案二:使用回调函数(支持动态扩展)
你之前的回调写法有两处需要调整:一是PHP里回调参数要加callable类型声明,二是要保证核心逻辑执行完再触发回调,最好加上异常处理避免save功能无法恢复。
正确的回调实现:
function functionName($results, callable $callback = null) { disableSave(); try { // 这里写你的核心业务逻辑 } finally { // 不管核心逻辑是否出错,都会执行后续操作,保证save功能能恢复 if (is_callable($callback)) { $callback(); } else { // 没传回调时,默认执行enableSave() enableSave(); } } }
调用示例:
- 用默认的
enableSave():
functionName($yourResultsData);
- 传自定义回调(比如需要额外操作):
functionName($yourResultsData, function() { enableSave(); // 可以在这里加其他后续执行的代码 });
方案三:try-finally兜底(推荐,避免异常导致save失效)
如果你的核心业务逻辑有可能抛出异常,用try-finally结构能确保enableSave()一定会执行,哪怕中间代码出错:
function functionName($results) { disableSave(); try { // 这里写你的核心业务逻辑 } finally { enableSave(); } }
内容的提问来源于stack exchange,提问作者Mr lucky
相关产品推荐
相关产品推荐

