gpt4 book ai didi

PHP函数错误和成功模式

转载 作者:行者123 更新时间:2023-12-04 02:05:04 25 4
gpt4 key购买 nike

当函数正常执行时,从 PHP 函数返回错误的最佳方式是什么?

例子

public function login($user, $pw){
if(!$this->verifyUser($user))
// return error about invalid user
}
else if (!$this->verifyPw($pw)){
// return error about invalid pw
}
else {
// return OK
}
}

调用方 - 以 JSON 形式为 Web UI 返回响应

public function doLogin($user,$pw){
$res = $this->login($user, $pw);
return json_encode($res);
}

一方面,我可以将返回的结果理解为一个数组,但我觉得这对于如此低级的函数来说没有意义。也许他们应该返回错误代码,然后调用者必须查找错误代码字符串?

最佳答案

假设你在一个对象中,你基本上有三个主要选择:

  • 将错误存储在类似$this->errors 数组中并返回false
  • 有某种错误收集器作为对象的依赖,你
    调用 $this->collector->addError('blah blah'); 并返回 false
  • 抛出异常

对于前两种方法,您必须检查返回值,并在此基础上提取错误列表。但是这两种选择都有能够收集多个错误的好处。

异常方法在耦合方面稍微轻一些,但您只会得到一个错误。

至于实际返回什么,我建议使用错误代码 + 描述字符串。但是您的类(class)不会返回该字符串。相反,您的错误应该使用一些稍后翻译的“占位符”来注册:

$this->errors[] = [
'code' => 52,
'msg' => 'authentication.login.invalid-password',
];

当您从对象中提取错误时,它基本上是这样的条目列表,然后您只需通过翻译服务运行它们。

在异常情况下,当您的对象抛出 InvalidPassword 异常。

关于PHP函数错误和成功模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44091538/

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