加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:41:43 所属栏目:PHP教程 来源:网络整理
导读:我只是询问参数验证语法的标准做法.目前我正在使用 PHP,但任何被认为是平台/语言不可知解决方案的东西都将是巨大的. 截至目前,我知道两个很常见的语法.例如(我的偏好): function foo($a,$b,$c){ if(!$a){ throw new Exception(); } if($b 0){ throw new Exc
我只是询问参数验证语法的标准做法.目前我正在使用 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)的末尾确定断言,以确保方法按预期执行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读