首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过度使用die()函数

过度使用die()函数
EN

Stack Overflow用户
提问于 2013-08-25 23:02:09
回答 2查看 152关注 0票数 1

在PHP中验证数据时过度使用die();函数是否是错误的编程实践?

我正在构建一个类,在这个类中,我已经使用了该函数十几次,这样如果验证测试失败,整个脚本就会死掉。这是很好的做法吗,我应该有更好的方法吗?这种做法是否因语言而异,是否有任何程序范围的约定或最佳实践可供借鉴?

下面是一个例子:

代码语言:javascript
复制
    if($error = $this->checkDate($start)){
        echo "START: ".$error."\r\n";
        die();
    }

    if($error = $this->checkDate($end)){
        echo "END: ".$error."\r\n";
        die();
    }

    if($start>$end){
        $error = "The start date must come <i>after</i> the end date!";
        echo $error;
        die();
    }
    if(($end-$start)<(3*24*3600) || ($end-$start)>(3*30*24*3600)){
        $error = "The period must be at <i>least</i> 3 days long, and at <i>most</i> 3 months long. This date spans about ".round(($end-$start)/(3600*24*30))." months.";
        echo $error;
        die();
    }

等等等等..。

“最佳实践”怎么已经不是标签了??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-25 23:08:05

如果您正在构建一个更大的系统,您可能需要更多的输出,即使它失败了,比如模板等等。你在这里终止的方式会使你很难以一种干净的方式去完成。

如果您的应用程序是非常小的,所以在此验证之后不需要做任何事情,那么您可能很好,但同样,您应该始终构建易于扩展的代码,以防以后需要这样做。

如果由我决定,我可能会抛出一个异常,然后在更高的嵌套级别上适当地处理异常。

但是,您将再次需要根据您对此应用程序的实际意图进行调用。也许这是合适的,但很可能不是。

票数 2
EN

Stack Overflow用户

发布于 2013-08-26 00:10:35

实际上,在您的方法中有两个关键缺陷:

  • 事实上,生产代码中不应该有一个()语句。
  • 此外,任何类方法都不应该输出一个单词。

说到表单验证,你的想法会让用户体验变得困难和过时。一个好的网站总是会出现在arror上。

  • 表格本身
  • 所有输入的数据
  • 所有的错误都是一次性的,为了让用户修复所有错误,不要一次又一次地提交表单,直到它们到达最后一个错误为止。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18434594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档