热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php中大量使用die或exit是否有弊端?-php教程

php中大量使用die或exit,除了可读性方面是否有其他弊端?
php 中大量使用 dieexit,除了可读性方面是否有其他弊端?

回复内容:

php 中大量使用 dieexit,除了可读性方面是否有其他弊端?

我觉得 die()/exit() 主要是影响程序的设计,也就是影响可读性和未来的可维护性。我自己是坚决抵制无脑使用 die()/exit() 的。

在 php 引入异常机制之前, die()/exit() 是仅有的提前退出程序的方法,用一用还凑合。但有了异常机制之后,应该学习 java 的设计思路:业务的错误用返回值返回,无法处理的请求抛异常。这样的设计保证了调用者无论如何都有足够的控制权,从而让整个系统是健壮的。

在设计工具类和工具函数时,die()/exit() 应该严令禁止,因为它们无权决定整个程序的生死。

在写一个具体业务脚本时,die()/exit() 仅在需要向 shell 返回状态码或者确实确定业务已经结束的情况下使用,其他情况最好禁止使用。

die()exit()都是表示在这里就自然结束,我觉得很正常啊,为什么会有可读性的问题?私以为超长的逻辑嵌套和多重include更有可能造成你所谓的可读性的问题。

exit和die是人为结束脚本运行,顾名思义,可读性肯定没有问题的。
性能方面,直接结束脚本运行,对性能是有益无害。
如果非要说弊端,那我认为是:本来应该用return的时候却使用了exit,可能脚本提前退出,造成功能上的问题。不过,我认为这是写代码的人的问题,和语法结构没有关系。
所以,该用就用吧,放心大胆的用,提供出来就是让人使用的。

对于程序代码书写来说,我同意公子 @公子 dieexit 就是程序结束。

但是对于函数和库的设计来说,我觉得不应该使用这两个,而是使用 return。因为一个函数的调用,不应该将整个程序给停止了(OMG,这个函数的权限也太大了点儿吧)。不管这个函数是正确调用,还是出现问题了,都应该通知他的调用者,方法当然是通过 return 了。

还没有遇到过性能上的问题,但是如果你使用trigger_error()函数来替代die(),你的代码在处理错误上会更具优势,对于客户程序员来说更易于处理错误。
下面是是我转发的一篇文章,你可以看看:http://blog.csdn.net/yipiankongbai/article/details/17568223

推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Python版Protobuf的安装和使用方法,包括版本选择、编译配置、示例代码等内容。通过学习本教程,您将了解如何在Python中使用Protobuf进行数据序列化和反序列化操作,以及相关的注意事项和技巧。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了2019年上半年内蒙古计算机软考考试的报名通知和考试时间。考试报名时间为3月1日至3月23日,考试时间为2019年5月25日。考试分为高级、中级和初级三个级别,涵盖了多个专业资格。报名采取网上报名和网上缴费的方式进行,报考人员可登录内蒙古人事考试信息网进行报名。详细内容请点击查看。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了程序员最美的情人节礼物,即使用JS渲染的3D玫瑰,通过在QQ空间和人人网上分享这个特殊的礼物,可以给情人带来惊喜和喜悦。 ... [详细]
author-avatar
我怎么了2602902235
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有