目次
回复内容:
ホームページ バックエンド開発 PHPチュートリアル php中大量使用die或exit是否有弊端?

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

Jun 06, 2016 pm 08:44 PM
php

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles