hiromasa.zone : o)

2007/2/3 Saturday 投稿時の月齢:14.8  月名:十五夜  潮汐:大潮 Moon:14.8[十五夜]今日の心技体 : 好調期好調期低調期

PHP で遊ぼう(5) – プログラムのエントリポイントと生存期間 – このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

日記 - 晴のち雪(4/-6) ひろまさ @ 0:34

と、めずらしく2日続けて遊ぼうシリーズ。 何を隠そう、すでに5回目。 いつも、書き始めるんですが脱線してなかなかプログラムのことまでたどり着けません。 😛

なにやら難しそうなサブタイトルがついていますが、なんのことはありません。 でも意外と入門書には書いていない事実。 今回は PHP というより若干 Web プログラミングよりのお話です。

PHP で書かれたプログラムの多くは、拡張子 .php となっているただのテキストファイルです。 これをそれなりに設定された Web サーバ上において、ブラウザからそのファイルに対してアクセスを行うと動作するといのは、なんとなく分かるかと思います。

じゃー、そのプログラムはどこから始まって、いつ終わるの?というのがエントリポイントと生存期間です。

まずはどこから始まる(エントリポイント)かというお話ですが、これは”そのファイルの先頭”から実行がはじまります。 そして、”1行(文)”づつ基本的に上から下に向かって解釈しながら走行し、ファイルの終端、もしくは exit や die といった構文でプログラム中で明示的に終了を命令されたときに終了します。(ちなみにこういった、ファイルの先頭から実行が始まる言語はエントリポイントが”ない”言語というそうです。 ファイルの先頭からはじまらず、ある特定のキーワードの部分からはじまる言語も多数あります。)

ちょうど人間が、文章を読み進めるがごとく、PHP も指令が書かれた文書を上から下に読み進めるイメージです。 若干違うのは、上から下に進んでいるときに、上にもどったり別の文書(ファイル)を読みに行ったりすることです。

Web / PHP の場合、その読み進めていく課程で行ったなにかしらのの”出力”結果が、ブラウザにそのプラグラムの動作として表示されます。 ブラウザは HTML を解釈して画面を表示するソフトウェアですので、一般的に PHP の出力結果は HTML になります。

ということで、HTML の出力をおえると PHP のプログラムはその役目を終えます。 なので、その生存期間は1秒やそこらです。 WP だと 3~5 秒くらいですか。

ポイントは、次のアクセスは、たとえ同じプログラムでも、さっきうごいていたプログラムとはなんら関係がないということです。 動作中に処理された値などは、終了と同時になくなります。 残るのは、ブラウザに表示された結果だけです。 ブラウザに表示された結果はユーザが消さない限りのこりますので、ユーザの手元には見えますが PHP 的には、生存期間がおわったものはすべて無かったことになります。

それでは、なぜ WP なんかが投稿したエントリを覚えていれるかというと、WP のプログラムはその実行結果を忘れないように MySQL というデータベースに保存するためです。 シンプルな掲示板のシステムなどはファイルにデータを書き出すことも良くやります。 このように生存期間の短い Web / PHP のプログラムでデータを保存したい場合は、ディスクなどの外部記憶を使う必要があります。

さて Web / PHP で永遠に動き続けるプログラムがかけないかというと、そういうわけでもありません。 そういったプログラムにブラウザでアクセスした場合は、ブラウザの地球儀がぐるぐる回り続けそのプログラムは動き続けます。 ただしHTML の出力においてこういった永遠に動き続ける動作をしたところで意味はありませんし、また想定されていないため、ブラウザのタイムアウトや PHP 自身によりこういったプログラムは強制的に落とされます。

この辺が、Web のプログラムになれていない人には分かりづらいとこですね。(職業でコンピュータやっている人でも、Web に携わってないと分からない人が多い)

一般の Windows などのPCで動作するクライアントのソフトウェアは、画面がみえているうちは生存しています。 操作が無くてもプログラムは同じところをぐるぐるぐるぐる動き続け、ユーザからの入力などを待ち動き続けます。 終了はユーザが明示的に終了の操作をしたときや、OS からの指令がきたときです。 なのでこのときまでデータなどは、外部記憶に頼ることなく保存されているわけです。

こういった生存期間が長いクライアントソフトウェアは C++ や C# でかかれることが多いわけですが、同じプログラミング言語ですから PHP だってかけないことはありません。 PHP は Web で使われることを想定していますので、標準で Windows の画面にウインドウをだしたりはできませんが、ライブラリと呼ばれる拡張をつかえば、生存期間がながいぐるぐるぐるぐる動き続けるクライアントソフトを作ることも可能です。 こういった意味合いで区別するため上では「Web / PHP 」といった書き方をしてみました。

また、逆に Web 系のシステムでここでいう生存期間が長いソフトウェアをつくれないかというとそうでもなく、Java 言語などでは、一般的にアプリケーションサーバと呼ばれる仕組みをつかいアプリケーションをサーバ上で生存させ続けることもできます。

また話が脱線してしまいましたが、、Web / PHP に関してはまずは次のように覚えておけば間違いありません。

プログラムはファイルの先頭から、

どこかで終わったら無くなる

HTMLを出し終わったら大満足

せっかくですので、我らが WP のスタートポイントを書きます。 ブログルートにある、index.php です。 上から気合いで読み続けていけば、そのうち終わります。 それがファイルの終端だったか、exit だったかは忘れました。 😛

25 Comments

Trackback

  1. From: RGBlog v2.0 - 2007/2/10 Saturday Nighttime (Trackback)

    PHPを書いてみた…

    WordPressに出合うまで、プログラミングなんて自分の能力の許容範囲を超えると思い続けていました。絶対自分には、プログラミング言語なんて理解出来ないだろうし、勉強し (more…)

  2. From: tesla coil plans - 2008/3/31 Monday Daytime (Trackback)

    tesla coil plans…

    tesla coil plans http://www.smartgeezer.co.uk/wp-content/uploads/2007/10/caenra.html tesla coil plans tesla coil plans tesla coil plans…

  3. From: jet car insurance - 2008/4/6 Sunday Daytime (Trackback)

    jet car insurance…

    jet car insurance jet car insurance jet car insurance jet car insurance http://www.abelasecretarial.com/editcontent/snippet-db/17d32a2dcf/scripts/nevifivi.html jet car insurance…

  4. From: david bisbal lyric - 2008/4/9 Wednesday Nighttime (Trackback)

    david bisbal lyric…

    david bisbal lyric http://grail76.clanteam.com/article293.html bisbal david decir iba lyric quien bisbal david silencio bisbal david decir iba quien…

  5. From: shankar ravi - 2008/4/9 Wednesday Nighttime (Trackback)

    shankar ravi…

    shankar ravi http://jenniffershrade.pop3.ru/20080324-shankar-ravi.htm glass phillip ravi shankar daughter ravi shankar jones norah ravi shankar…

  6. From: loudon wainwright 111 lyrics - 2008/4/9 Wednesday Nighttime (Trackback)

    loudon wainwright 111 lyrics…

    loudon wainwright 111 lyrics http://myrticelovejoy.pop3.ru/2008-04-03-loudon-wainwright.html loudon wainwright 111 lyrics loudon wainwright 111 lyrics loudon wainwright 111 lyrics…

  7. From: my chemical romance layouts - 2008/4/9 Wednesday Nighttime (Trackback)

    my chemical romance layouts…

    my chemical romance layouts http://emiofbrie.orgfree.com/my-chemical-romance.htm my chemical romance layouts my chemical romance layouts my chemical romance layouts…

  8. From: phenylbutazone - 2008/4/9 Wednesday Nighttime (Trackback)

    phenylbutazone…

    phenylbutazone http://jamikagranillo.pop3.ru/20080322-phenylbutazone.html phenylbutazone phenylbutazone phenylbutazone…

  9. From: ecstasy - 2008/4/9 Wednesday Nighttime (Trackback)

    ecstasy…

    ecstasy http://flight.xxuz.com/article1391.htm ecstasy ecstasy ecstasy…

  10. From: owl thompson learning center - 2008/4/9 Wednesday Nighttime (Trackback)

    owl thompson learning center…

    owl thompson learning center http://criseldaspivey.pop3.ru/20080323-owl-thompson.html owl thompson learning center owl thompson learning center owl thompson learning center…

  11. From: free window icon - 2008/4/9 Wednesday Nighttime (Trackback)

    free window icon…

    free window icon http://kandycoley.pop3.ru/20080401-free-icons.html free aim buddy icon free icon myspace now online free aim buddy icon…

  12. From: nursing and midwifery council united kingdom - 2008/4/9 Wednesday Nighttime (Trackback)

    nursing and midwifery council united kingdom…

    nursing and midwifery council united kingdom http://jamikagranillo.pop3.ru/20080404-nursing-and-midwifery.html nursing and midwifery council united kingdom nursing and midwifery council united kingdom nursing and midwifery council united kingdom…

  13. From: 5 container food gallon grade - 2008/4/21 Monday Morning (Trackback)

    5 container food gallon grade…

    5 container food gallon grade http://hostingsupercenter.com/member/temp/images/ccnazarfi.html 5 container food gallon grade 5 container food gallon grade 5 container food gallon grade…

  14. From: kark rove - 2008/4/21 Monday Morning (Trackback)

    kark rove…

    kark rove http://otkrii.com/stories/images/wqasbrle.html kark rove kark rove kark rove…

  15. From: player piano sales - 2008/4/21 Monday Morning (Trackback)

    player piano sales…

    player piano sales http://clasicturism.ro/images/tests/farolle.html player piano sales player piano sales player piano sales…

  16. From: dental school - 2008/4/21 Monday Morning (Trackback)

    dental school…

    dental school http://information-bg.com/site/galeria/kartinki/pics/dronnrde.html dental school dental school dental school…

  17. From: netiquette - 2008/4/21 Monday Morning (Trackback)

    netiquette…

    netiquette http://signaturefitness.net/mail/mail/skin/xp2/tpl/fr/clolola.html netiquette netiquette netiquette…

  18. From: platform bird feeder - 2008/4/21 Monday Morning (Trackback)

    platform bird feeder…

    platform bird feeder http://www.carduri-de-credit.ro/new/admin/pictures/pics/trhenorqa.html platform bird feeder platform bird feeder platform bird feeder…

  19. From: kia sedona - 2008/4/21 Monday Morning (Trackback)

    kia sedona…

    kia sedona http://sannus.info/bisc/e107_plugins/links_page/cat_images/pics/mexvarse.html kia sedona kia sedona kia sedona…

  20. From: socket exception connection reset - 2008/4/21 Monday Morning (Trackback)

    socket exception connection reset…

    socket exception connection reset http://information-bg.com/site/galeria/kartinki/pics/elquaalcn.html socket exception connection reset socket exception connection reset socket exception connection reset…

  21. From: play plus stay studio ticket universal - 2008/4/21 Monday Morning (Trackback)

    play plus stay studio ticket universal…

    play plus stay studio ticket universal http://www.e-eventful.ro/cariere/doc/txt/bocchic.html play plus stay studio ticket universal play plus stay studio ticket universal play plus stay studio ticket universal…

Comment

  1. From: endunham - 2007/2/5 Monday Nighttime (Comment)

    hiromasaさん、やりましたよ!初のphpプログラミング。同じifステイトメントを書き出してコードだらけにしてたんですが、やっとelseifとelseを組み合わせる事が出来ました。プログラミングなんて雲の上のような存在でしたが、出来るようになるとプログラミングも楽しいですね。って、全然ビギナー中のビギナーなんですが、このhiromasaさんの連載記事もあって、どんどん勇気が湧いてきましたよ!

  2. From: ひろまさ - 2007/2/5 Monday Nighttime (Comment)

    endunham さん、よかったデス。 :grin: そこまでくれば、あとはいっぱいかくだけですよ! プログラム、のめりこんでいると朝になりますよね(笑)

    週一くらいでかきたいとおもいますので、なにか取り上げてほしいことなどありましたらぜひぜひお願いいたします。 😮

  3. From: naoki - 2007/2/23 Friday Daytime (Comment)

    はじめまして、naokiと申します。WordPressでこちらを知りました。
    WordPress プラグイン作成時のノウハウや、Eclipse&phpEclipse の項目はとても参考にさせてもらいました。
    WordPressをCMSとして使いこなそうと、最近PHPを勉強して始めたのですが、もしよろしければ、WordPressのプラグインと絡ませて取り上げてくれたらうれしいです。
    要望ばかりですみません。

  4. From: ひろまさ - 2007/2/25 Sunday Nighttime (Comment)

    naoki さん、こんにちは。 コメントありがとうございます。 😀

    そうですね、WordPress とからませると面白いですね! とりあえず、WP にいけるところまでがんばってみます。

    今後ともよろしくお願いいたします。 😮


このサイトはコンテンツをフリーズしました。トラックバック・コメントは閉じられています。

新しいサイトは、

hiromasa.another :o)

です。 :-)

このサイトについて

このブログは引っ越しを行いコンテンツはフリーズしています。hiromasa.anotherへどうぞ。

Powerd By WordPress

We (Heart) WordPress

WordPressME Logo
WordPress Plugins

ブログ内検索

Todays Popular

WordPress Ring

はてなリング - WordPress -

情報

31 queries. 0.609 seconds.

このページの先頭へ