• ベストアンサー

スクリプト終了時に呼び出す関数register_shutdown_function()について

$objPage = new LC_Page_Admin_Ex(); register_shutdown_function(array($objPage,"destroy")); $objPage->init(); $objPage->process(); のプログラムでスクリプト終了時に呼び出す関数register_shutdown_function()を入れる意味の分かる人いませんか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

register_shutdown_function関数は、スクリプトが終了したと同時に実行する関数(またはメソッド)を指定することが出来ます。 スクリプトが終了するというのは、スクリプトの最終行に到達した時点か、もしくは、スクリプト実行中にクライアントが強制的に終了した時点です。 従いまして、そのプログラムはスクリプト終了時に、LC_Page_Admin_Exのdestroyメソッドを必ず実行します。

basi999
質問者

補足

解答ありがとうございます。 $objPage->init(); $objPage->process();のスクリプト終了後にregister_shutdown_function(array($objPage,"destroy")); が実行されるのでしょうか。 また register_shutdown_function(array($objPage,"destroy")); によって呼び出されるLC_Page_Admin_Ex->destroy()のdestroyメソッドがfunction destroy(){};で何も処理しないのにregister_shutdown_function(array($objPage,"destroy")); を入れる理由知りませんか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • デストラクタとregister_shutdown_

    デストラクタと、 register_shutdown_function()関数 の違いを教えてください。 検索すると、 ・デストラクタ…PHP5 ・register_shutdown_function()関数…PHP4・5 みたいなのですが、 それ以外、何が違うのでしょうか?

    • ベストアンサー
    • PHP
  • このスクリプトで画像クリック時に新しいウインドウでサイトが開くようにす

    このスクリプトで画像クリック時に新しいウインドウでサイトが開くようにするやり方を教えてください。target="_blank"は使えませんか? <a href="javascript:jump()" ><img src="http://bbs3.aimix-z.com/gbbsimg/kondo/3395.jpg"height="100" /></a> <script> url = new Array(); url[0]="http://www.goo.ne.jp/" url[1]="http://www.google.co.jp/" function jump() { p = Math.floor(Math.random() * url.length ); top.location.href = url[p]; } </script>

  • 一定時間で画像を変更するスクリプトの関数について

    javascript初心者です。 ↓下記のように画像がsetTimeoutで切り替わるスクリプトを書いているのですが、 http://foofoo77.web.fc2.com/imagechange/index6b.html このページの記述では、後読みの方の右側は動いているのですが、左側は動きません。 この処理を同一ページ内の二箇所でしたいのですが、どのようにすればいいでしょうか? 制約としては 二箇所を同じ関数を使ってそれぞれ違う引数を与えるのみで動かさなければなりません。 画像を変更する要素のidの値を引数としています。 同一関数を使って二箇所を処理するのは無理なのでしょうか? ソースは下記のようになります(上部URLと同じものです)。 お分かりになる方いらっしゃいましたら、ご回答よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>一定時間で変わる画像</title> <script type="text/javascript"> <!-- //画像プリロード var j=1; function preLoad(ch) { c = ch; animeImg = new Array(); for (i=1;i<6;i++){ animeImg[i]=new Image(); animeImg[i].src="images/"+c + i + ".gif"; }; } //時間制御 wait = new Array( 3000, 3000, 3000, 500, 500, 500, 500, 500, 3000 ); var fnum=0; //表示画像制御 function change(ch) { var obj = document.getElementById(ch); obj.src=animeImg[j].src; j++; if (j>5){ j=1; } if(fnum<4){ fnum++; } else { fnum=0; } wtime=wait[fnum]; //console.log(wtime); setTimeout("change(b)",wtime); b = ch; } //--> </script> </head> <body> <img src="images/image1.gif" name="animation" height="500" width="500" id="bb"> <script type="text/javascript"> preLoad('image'); change('bb'); </script> <img src="images/imageb1.gif" name="animation" height="500" width="500" id="cc"> <script type="text/javascript"> preLoad('imageb'); change('cc'); </script> </body> </html>

  • シャットダウン後に実行されるプログラム

    linuxでshutdown -h nowかhaltまたはinit 0などでシャットダウンした後すぐに(0.1秒後くらいに)実行したいプログラム(スクリプト)があるのですが、どのファイルに書けばよろしいでしょうか?そもそもそのようなことはできますでしょうか? ご存知の方、宜しくお願いします。

  • 一定時間で画像を変更するスクリプトの関数(IE)

    javascript初心者です。 数日前にこちらで教えていただきまして、 画像をプリロードをして、画像がsetTimeoutで切り替わる動きをするスクリプト(任意の引数を与えた場所を処理する関数)ができたのですが、 IEで見たときにsetTimeoutのタイミングで毎回、画像読み込みがされているようなのですが(ブラウザの左下に文字が出てきます) これを解消するにはどうすればいいでしょうか? 二箇所を同じ関数を使ってそれぞれ違う引数の付与でsetTimeoutのタイミングや読み込む画像や場所を変えています。 サンプル↓こちらに上げてあります。 http://foofoo77.web.fc2.com/imagechange/index6g.html ソースは下記になります(上記と同一のものです)。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>一定時間で変わる画像</title> <script type="text/javascript"> var animeImg = {}; //画像プリロード function preLoad(ch) {  var img;  for (var i = 0; i < 4; i++) {   img = new Image();   img.src = "images/" + ch + i + ".gif"; // 0 ~ 3.gif  }  // 与えられた引数を使いカウンタ用プロパティを設定  animeImg[ch] = { j: 0, fnum: 0 }; } //時間制御 var wait = new Array( 3000, 500, 3000, 3000); var wait2 = new Array( 500, 500, 500, 500); //表示画像制御 function change(ch, time, number) {  var obj = document.getElementById(ch);  var data = animeImg[ch];  obj.src = "images/" + ch + data.j + ".gif";  data.j++; var Num = number;  if (data.j > Num) {   data.j = 0;  }  if (data.fnum < Num) {   data.fnum++;  } else {   data.fnum = 0;  }  var wtime = time[data.fnum];  setTimeout(function() { change(ch, time, Num); }, wtime); } </script> </head> <body> <img src="images/image0.gif" id="image"> <script type="text/javascript"> preLoad('image'); change('image',wait,3); </script> <img src="images/imageb0.gif" id="imageb"> <script type="text/javascript"> preLoad('imageb'); change('imageb',wait2,2); </script> </body> </html>

  • 下記コードのようなオブジェクトとかprototypeとかを理解するヒントを教えてください!

    <html> <head> <meta charset="utf-8"> </head> <body> <script type="text/javascript"> var hoge = function(){ //▼ function testFunc(n){ } testFunc.prototype.init = function(c){ alert(c); }// end func return{ testFunc:testFunc } }(); var u = new hoge.testFunc(); u.init("あああ"); </script> </body> </html> ---------------------------------------------------- ここ数日いろいろ弄っているのですが、 いまいちピンと来ない感じです。 何か、参考になるようなスクリプトやポイントなどありましたら、 ご紹介いただけると幸いです。 よろしくお願いいたします。

  • ソースが変わってしまいます

    ボールが水平に転がっていくプログラムを作りたいと思っています。 <自分が作っているもの> <script type="text/javascript"> <!-- a=new Array("●"," ●"," ●"); num=0; function roop(){ document.write(a[num]); num=num+1; } //--> </script> <script type="text/javascript"> <!-- setInterval("roop()",200); //--> </script> これを実行するとひとつ目の●だけが表示されます。 ソースを表示すると変化してしまっています。 どのようにすれば、自分の望んでいるようになるのでしょうか? 最近始めたばかりなのでわけの分からないことを書いているかもしれませんがよろしくお願いします。

  • 関数の引数として配列を渡す方法

    初めて質問させていただきます。 現在下記のように関数に配列の引数を渡して、配列の個数を表示しているのですが、必ず0件になってしまいます。 <html> <head> <title>連続して関数を呼び出す</title> <script language="JavaScript"> <!-- function aaa (est) { alert(est.length); return; } // --> </script> </head> <body> <script language="JavaScript"> <!-- var hai = new Array(); hai["a"] = true; hai["b"] = false; aaa(hai); // --> </script> </body> </html> もしかしたら、受け渡し方が悪いのかもしれないのですが、色々調べても分からなかったので質問させていただきました。 argumentsというものを使うのかもしれませんがうまくいきませんでした。 分かる方がいらっしゃいましたら、ご教授ください。

  • setTimeoutを使用して文字を表示させたい

    おたずねします。 まだまだ初心者で、練習用に以下のようなプログラムを書いたのですが、うまく動きません。 やりたいことは「あいうえお」の文字を順番に、規定の時間(1秒ずつ表示時間を長くして)表示させるものです。 <script language="javascript"> mozi= new Array(); mozi[0]=("あ"); mozi[1]=("い"); mozi[2]=("う"); mozi[3]=("え"); mozi[4]=("お"); time= new Array(); time[0]=(1000); time[1]=(2000); time[2]=(3000); time[3]=(4000); time[4]=(5000); var menu=0; function aaa(){ document.write(mozi[menu]); timerID = setTimeout("aaa()",time[menu]); if(menu == mozi.length-1){ menu=0; }else{ menu++; } } </script> <body> <script language=javascript> <!-- aaa(); //--> </script> </body> どうしても「あ」→「い」のあとで動作がループのように固まってしまします。 このプログラムの順番がどのように動いて、 [menu]内の変数の増え方がどのようになっているのかが よくわからず困っています。 他にも別の記述方法はいろいろあると思うのですが、 できればこのプログラムを修正する形で御指摘いただきたいのですが。 どうぞよろしくお願いいたします。

  • あるカテゴリーの固定ページ一覧/WordPress

    <?php wp_list_pages('title_li='); ?>で固定ページ一覧が表示されますが あるカテゴリーの固定ページに限定して一覧表示できないでしょうか。 固定ページにカテゴリーを設定は、functions.phpに add_action('init','add_categories_for_pages'); function add_categories_for_pages(){ register_taxonomy_for_object_type('category', 'page'); } add_action( 'pre_get_posts', 'nobita_merge_page_categories_at_category_archive' ); function nobita_merge_page_categories_at_category_archive( $query ) { if ( $query->is_category== true && $query->is_main_query() ) { $query->set('post_type', array( 'post', 'page', 'nav_menu_item')); } } と記述して、解決しています。

    • ベストアンサー
    • PHP