PHP の exit() と die() の違い

WBOY
リリース: 2016-06-21 08:46:51
オリジナル
1726 人が閲覧しました

この記事では、php でよく使用される exit と die の違いを簡単に分析しています。困っている方はご覧ください。

まず質問について考えてみましょう:

次のコードはページに何を表示しますか?

<?php
die(123);
?>
ログイン後にコピー

ページには 123 が表示されると常に考えていた時期がありましたが、実際の結果では、答えは間違っており、ページは空白でした。

理由はまだわかりませんが、123 が出力されないようにするには、ページを次のコードに修正しました。

<?php
echo '123';
die();
?>
ログイン後にコピー

インターネット上の情報:

PHP の exit() と die() の違い

PHP マニュアル: die() exit() と同等。

説明: die() と exit() はどちらもスクリプトの実行を終了する関数です。実際、2 つの名前 exit と die は同じ関数を指し、die() はその別名です。 exit() 関数。この関数は、プログラムによって返される または 文字列 のパラメーターを 1 つだけ受け入れます。パラメーターを入力しない場合、結果には戻り値がありません。

参考: この 2 つは同じですが、通常の使用には微妙な選択性があります。例:

exit 関数と die 関数に渡される値が

0 の場合、通常は exit() という名前を使用して、スクリプトの実行を早期に終了することを意味します。

echo "1111";
exit(0);
echo "2222";  // 22222不会被输出,因为程序运行到exit(0)时,脚本已经被提前终止,“马上断气”。
ログイン後にコピー
プログラムにエラーが発生した場合、通常は die() という名前を使用してシステム端末にそのまま出力される文字列を渡すことができます。

$fp=fopen("./readme.txt","r") or die("不能打开该文件");
// 这种情况下,如果fopen函数被调用返回布尔值false时,die()将立即终止脚本,并马上打印
// 传递给它的字符串,“死前还能说一两句话”。
ログイン後にコピー

前のトピックに戻りますが、次のコードがページに 123 を出力しないのはなぜですか?

<?php
die(123);
// 或 exit(123);
?>
ログイン後にコピー

自分自身の要約:

1. 機能的には、die() は exit();

と同等です。

2. PHP には、Web サイト形式またはスクリプト形式の複数の実行モードがあります (Web サーバーは必要ありません)。

PHP をスクリプト形式で実行する場合は、exit() を使用することをお勧めします:

たとえば、Bash Shell スクリプト言語は、実行を停止したい場合、exit() 関数を使用してスクリプトを終了し、出力コンテンツを

実行環境 (通常はグローバル変数) を使用しますが、出力内容は 数値 のみです。これは、「コマンドの終了ステータス」を意味します。

関連参考リンク: http://blog.snsgou.com/post-711.html

言い換えると、exit(123) は実際に 123 を

コンソール に出力するのではなく、実行ステータス 123 を出力するだけです。 123 を コンソール に出力したい場合は、コードを次の形式に変更する必要があります:

<?php
exit('123');
?>
ログイン後にコピー

PHP が Web サイトとして実行されている場合は、die() を使用することをお勧めします:

しかし、現時点では、

die(number) は意味がありません。number 文字列をページに出力しないからです。ページを終了して数値を出力したい場合は、次の形式に変更する必要があります

<?php
die('123');
?>
ログイン後にコピー

興味がありそうな記事

    PHP における return と exit、break と contiue の違いと使い方
  • echo、print、print_r、 var_export、var_dumpの使い方と違い
  • PHPにおけるempty、is_null、issetの違いを詳しく解説
  • break、Continue、goto、return、exitで抜け出す使い方と違いPHP での複数のループ
  • ThinkPHP の実行メソッドとクエリ メソッドの違い
  • JavaScript のscrollHeight、scrollWidth、scrollLeft、scrolltopなどの違いの簡単な説明
  • PHP の変数と関数の前に static キーワードを追加した後の違い
  • PHP セッションと Cookie の違い



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート