PHP:_Hypertext_Preprocessor
★制服でHなバイト★
1日5万円★日払い★

[Wikipedia|▼Menu]

7.3 PHP 3.0

7.4 PHP 4.0.0

7.5 PHP 4.1.0

7.6 PHP 4.2.0

7.7 PHP 4.3.0

7.8 PHP 4.4.0

7.9 PHP 5.0.0

7.10 PHP 5.1.0

7.11 PHP 5.2.0


8 脚注

9 関連項目

10 外部リンク

//


名称

正式名称は「PHP: Hypertext Preprocessor」であるが、一般的には「PHP」と省略して用いられる。このPHPとは、Personal Home Page Toolsの頭文字に由来する[1]


仕様

PHPはCommon Gateway Interface (CGI) をサポートしており、CGIをサポートするWebサーバ上でPHPスクリプトを実行することができる。この他にもFastCGIを通じてWebサーバから起動したり、利用するWebサーバモジュール機構を提供していれば、モジュールとしてWebサーバに組み込んだ状態で動作させることが可能である。その為、phpモジュールに脆弱性があった場合、簡単にWebサーバの権限を奪取され、サーバを破壊されることもある。

PHPは、PHP4以降Zend Engineをスクリプト言語を処理するエンジンとして利用している。Zend Engineは、PHP3の開発者によって設立されたZend Technologies Ltd.により開発されたソースコードが公開されているスクリプティングエンジンで、PHP5ではZend Engine 2.0になった。Zend Engineは基本的に1つのプロセスがインタプリタのコンテキストを1つだけ持つものとして設計されている。したがってマルチスレッドを用いたスクリプティングはサポートしていない。

Zend Engineを除くPHP本体は、PHP組み込み関数の実装を含むほか、Webサーバコマンドラインインターフェイスとスクリプティングエンジンの間を仲介するSAPI (Server API)レイヤ、マルチスレッドで動くWebサーバのモジュールとして利用される場合にグローバル変数のセマンティクスを提供するTSRM (Thread Safe Resource Manager)、さまざまなプラットフォームの入出力機構やAPIの差異を吸収するためのStreamsレイヤから成る。

開発者はSAPIの提供するSPIを実装することで、さまざまなWebサーバのモジュールとしてPHPを動作させることができる。標準では以下のWebサーバ用のSAPIが提供されている。

CGI

AOLserver

Apache HTTP Server (バージョン 1.x 用 / 2.x 用)

Sun Java System Web Server

Roxen WebServer

Tux

ISAPIMicrosoft Internet Information Services等)

Caudium

Continuity

Pi3Web

thttpd

PHPを動作させる方法には、実行ファイル形式(CGI / FastCGI)、モジュール形式(mod_php / ISAPI)がある。どの形式を使用するかはWebサーバにより異なる。一例を挙げるならば、Apacheで動作させる場合はmod_phpを使用し、IISで動作させる場合はISAPIを使用し、lighttpdで動作させる場合はFastCGIを使用し、AN HTTPDで動作させる場合はCGIを使用する(いずれも代表例であり、他の形式でも動作させることは可能だが、実例は少ない)。

PHPにおいては一般的に実行ファイル形式よりもモジュール形式の方が高速に動作するとされる。そのためApacheとmod_phpの組み合わせがよく用いられている。ただし実行ファイル形式でもFastCGIを使用することによりモジュール形式と並ぶパフォーマンスを出すことも可能である(例えばlighttpdとFastCGIの組み合わせ)。

PHPにはWindowsUNIXなどのオペレーティングシステムに対応した処理系が存在する。一部の組み込み関数はプラットフォームごとに挙動が違うため、スクリプトによっては移植作業が必要になる場合がある。

また、多くのDBMSへのインターフェイスを標準で備えており、DBMSとの連携にも高い力を発揮する。

HTML埋め込み型の処理系としては他にASPJSPなどがある。

PHPには様々な付加機能がPEARというオンラインライブラリ集でモジュールとして提供されており、同名のツールを使って導入/管理が出来る。Perlで言うCPANと同じ役割を持っている。


構文

多くの構文をC言語、JavaPerlなどのプログラミング言語から転用しており、動的に生成させるウェブ・ページを速やかに作成できるのが特徴である。ウィキ構築に用いられるソフトの一つであるMediaWikiは、PHPによって書かれている。

幾つかのサンプルコードとその実行結果を交え、PHPの文書構造を解説する。


基本と制御構造

PHPは"<?php" と "?>"で囲まれた内部をPHPコードと認識し実行する。それ以外の部分は全てHTMLコードとしてそのまま出力される。<?phpif($a){?><div>HTMLコード</div><?php }else{?><span><?php echo "aは偽";?></span><?php }?>

<?phpと?>で囲まれていない部分を除外した際に、構文通りの構造に文書がなっていればPHPはこれを正しく実行する。出力は以下のようになる。(便宜上2通り記す)// $aが真の時の出力<div>HTMLコード</div> // $aが偽の時の出力<span>aは偽</span>

if、else(elseif)は条件評価の制御構造としてよく知られた構文であり、他にもPHPではforwhile(do)、foreachswitch文などの制御構造がサポートされる。breakcontinue等の制御構造文もあるが、ループ式を命名するlabel文構造はない。

記号$は変数であることを示し、続く文字はその名前である。PHPは比較的変数に寛容であり、変数が確保されていない場合は、これをエラーとせずにヌルとして処理する。<?php$a = x;$$a = y;echo $x; // yを出力?>


データ型

PHPは以下の型をサポートする

スカラー

文字列型 (String)


これは便利!
本屋の在庫も探せます

[次ページ]
[オプション/リンク一覧]
[記事の検索]
[おまかせ表示]
[トップページ]
[ニュースをチェック!]
[列車運行情報]
Size:36 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:Mamenoki