如何在PHP函数中实现多级返回?

如何在PHP函数中实现多级返回?,php,symfony,controller,Php,Symfony,Controller,让我解释一下 假设我们有一个名为phone.add的函数-API方法,最终用户调用http://example.com/api/v1/phone.add带有一些参数。在执行PhoneManager类中的某个实际函数之前,我们需要执行两个通用检查-验证参数和访问权限 让phone.addAPI方法如下所示: function phone_add(string $param1, int $param2, callable $param3): float { //... validate $pa

让我解释一下

假设我们有一个名为
phone.add的函数-API方法,最终用户调用
http://example.com/api/v1/phone.add
带有一些参数。在执行
PhoneManager
类中的某个实际函数之前,我们需要执行两个通用检查-验证参数和访问权限

phone.add
API方法如下所示:

function phone_add(string $param1, int $param2, callable $param3): float {
   //... validate $param1, $param2, $param3
   //... check access rights

   //... call PhoneManager::add()
   //... return result
}
很明显,验证可能会失败,应该形成并发送相应的响应,但是在每个API方法中添加
if(validation\u failed(…)返回新的响应(…)
,这有点混乱,因此。。。如何从嵌套的函数返回实际的最终响应,或者如何正确执行此算法(操作集)


谢谢你

实际上,您可以在这方面处理异常。在finally方法中,您可以构建(try-catch块的)响应。另一种方法是将响应作为参考传递给每个块。(方法或服务)@ChrisWest,关于异常的好主意。。。努力让它工作。谢谢@克里斯·韦斯特,请把这个想法作为回答。我做了一些例外——看起来不错,但绝对不是100%完美的解决方案。我刚刚想到的另一种方法可能是为消息转发创建一个简单的对象,然后简单地将其添加到每个方法调用中(通过引用传递)。最后,您可以向这个简单对象添加一个方法来处理存储的内容,并执行需要执行的任何操作;-)