我有一个(常见的)情况,我当前正在返回一个混合类型的结果,有时是布尔值,有时是错误消息。例如:
function checked_thing_is_legal(){
// Do stuff and check for errors in here.
} // Returns true if there are no errors, otherwise returns an error message string.
这感觉很脏,有人曾经说过“将代码提炼成单一,可靠的返回值是很好的”,我觉得这是一个很好的建议。那么检查错误的更好的范例是什么?
答案 0 :(得分:5)
我在这里看到两个选项
使用原子(布尔)验证器并从验证器本身解耦错误消息
if(!is_valid_email(blah)) print "invalid email";
使用带有boolean test()和string error()函数的验证器对象:
$v = new SomeValidator;
if(!$v->test(blah))
echo $v->error();
在快速而肮脏的应用程序中,如果一切正常,您还可以考虑返回空值
$err = validate_email(blah);
if(empty($err)) ok else print $err;
答案 1 :(得分:1)
PHP Exceptions将是一种经典的做法......
答案 2 :(得分:0)
您有以下可能性: