php – 函数/方法参数验证标准

前端之家收集整理的这篇文章主要介绍了php – 函数/方法参数验证标准前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只是询问参数验证语法的标准做法.目前我正在使用 PHP,但任何被认为是平台/语言不可知解决方案的东西都将是巨大的.

截至目前,我知道两个很常见的语法.例如(我的偏好):

  1. function foo($a,$b,$c){
  2. if(!$a){ throw new Exception(); }
  3. if($b < 0){ throw new Exception(); }
  4. if(!check($c)){ throw new Exception(); }
  5.  
  6. //do stuff with $a,and $c
  7.  
  8. }

或者:

  1. function foo($a,$c){
  2. if($a){
  3. if($b >= 0){
  4. if(check($c)){
  5.  
  6. //do stuff with $a,and $c
  7.  
  8. }else{ throw new Exception(); }
  9. }else{ throw new Exception(); }
  10. }else{ throw new Exception(); }
  11. }

无论如何,如果有人知道说明任何类型的标准的文档,或者有关这方面的常见做法,我将非常感谢参考.

当然,欢迎个人喜好和意见,但推选您的选择将是一项资产.

我更喜欢你给出的前一个例子,原因如下:

>代码不会像使用嵌套if语句那样不必要地缩进.
>嵌套if语句可以将一堆复杂的分支添加到难以管理的逻辑流中
>前提条件由于if语句的性质而下降.我更喜欢在方法开始时立即拥有所有的前提条件

通过合同设计是确保某些条件得到满足的一般方法(通常通过断言),如:

  1. Assert.IsNotNull($a,'$a must not be null');

如果断言失败,则使用指定的消息抛出异常.

使用相同的方法,您可以在方法(post-conditions)的末尾确定断言,以确保方法按预期执行.

猜你在找的PHP相关文章