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

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

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

function foo($a,$b,$c){
    if(!$a){ throw new Exception(); }
    if($b < 0){ throw new Exception(); }
    if(!check($c)){ throw new Exception(); }

    //do stuff with $a,and $c

}

或者:

function foo($a,$c){
    if($a){
        if($b >= 0){
            if(check($c)){

                //do stuff with $a,and $c

            }else{ throw new Exception(); }
        }else{ throw new Exception(); }
    }else{ throw new Exception(); }
}

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

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

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

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

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

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

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

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

猜你在找的PHP相关文章