php – 返回混合错误和布尔值的替代方法

我有一个(常见的)情况,我当前正在返回一个混合类型的结果,有时是布尔值,有时是错误消息.例如:

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.

这感觉很脏,有人曾经说过“将代码提炼成单一,可靠的返回值是很好的”,我认为这是一个很好的建议.那么检查错误的更好范例是什么?

解决方法:

在这看到两个选项

使用原子(布尔)验证器并从验证器本身解耦错误消息

   if(!is_valid_email(blah)) print "invalid email";

使用带有布尔test()和字符串错误()函数的验证器对象:

$v = new SomeValidator;
if(!$v->test(blah))
  echo $v->error();

快速而肮脏的应用程序中,如果一切正常,您还可以考虑返回空值

 $err = validate_email(blah);
 if(empty($err)) ok else print $err;

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...