22

何をしregister_shutdown_functionますか?

私はそれの使用法とそれが何をするかについてまったく理解していません。私はあなたがそれを使用でき、カスタムエラーハンドラーにうまく適合することを知っていますが、何を渡すか、何をするかなどはわかりません.

このコーディング初心者のために、誰かがそれを最も簡単な言葉で説明できますか?

4

2 に答える 2

41

これは実際には非常に単純な関数です。これで、php スクリプトができました。

<?php
  echo "Here is my little script";

  function endScript(){
       echo "My little Script has finished";
  }

  register_shutdown_function('endScript');

?>

基本的には、スクリプトが実行され、終了すると、この行を追加したためregister_shutdown_function('endScript');、関数 endScript が呼び出され、最終的に output が実行されますMy little script has finished

ドキュメントから少し余分なものを次に示します。

スクリプトの実行が終了するか exit() が呼び出された後に実行されるコールバックを登録します。register_shutdown_function() は複数回呼び出すことができ、それぞれが登録された順序で呼び出されます。1 つの登録済みシャットダウン関数内で exit() を呼び出すと、処理は完全に停止し、他の登録済みシャットダウン関数は呼び出されません。

*アップデート

exit()php で呼び出される関数を頻繁に使用する場合に最適です。

例えば:

<?php 

  function endScript(){
       echo "My little Script has finished";
  }
  register_shutdown_function('endScript');

  $result = some_intricate_function()

  if($result == 0){
     exit();
  } 

  $result = some_other_intricate_function()

  if($result == 0){
     exit();
  }

/* and this keeps reoccurring */
?>

endScriptここで、exit を複数回呼び出しても、毎回 exit の前に関数を呼び出す必要がないことに注意してください。最初に登録しましたが、終了するかスクリプトが終了すると、関数が呼び出されることがわかりました。

もちろん、私のシャットダウン機能はまったく役に立ちません。しかし、物事をきれいにする必要がある場合 (つまり、開いているファイル ハンドルを閉じる、永続的なデータを保存するなど) には便利です。

于 2012-11-21T18:12:50.500 に答える
1

register_shutdown_functionスクリプトがシャットダウンするときに実行される関数であるシャットダウン フックを登録します。実行される関数であるコールバック関数をパラメーターとして受け取ります。

関数のドキュメントを確認することをお勧めします。

于 2012-11-21T18:10:17.610 に答える