【PHP基礎】PHPの概要
PHPの概要
プログラミング言語PHPの概要を学びます。
具体的には以下の2点です。
- PHPとは
- PHPの特徴
PHPとは
PHPは、プログラミング言語の一種です。
正式名称を、「PHP: Hypertext Preprocessor」といいます。
PHPは、HTML埋め込み型のサーバサイド・スクリプト言語として分類されます。
動的にHTMLデータを生成することによって、動的なウェブページを実現できるのが最大の強みです。
HTMLの動的生成は、JavaScriptを使ってフロントサイドでもできますが、
DBやサーバーサイドのデータに基づく条件分岐や、データのHTML内への埋め込みをする場合、
PHPで行うのがセキュリティでも、データの受け渡しのために必要なコード量の節約でも、勝ります。
PHPの処理(動作)はウェブサーバ上で動作します。
その手順は以下の通りです。
- ウェブサーバ上のURLが要求される
- 1が行われたことへの反応として、1のURLに記述されたPHPのプログラムを実行
- 2の結果をウェブブラウザに対して送信
この言語処理系自体は、C言語で記述されています。
PHPは、もともと、Rasmus Lerdorf氏がPerlで書いた小さなCGIラッパーであったのですが、
プロセスを生成するコストを下げるためにC言語で書き直しを図ったのが最初といわれています。
PHPの基本的な概念
PHPの基本的な役割は、以下の図にある通り、
言語エンジン、データベース、他のプログラムとApacheを連携させることです。
PHPの特徴
PHPの特徴は、以下の8つになります。
- 多彩なデータベースをサポートし、その開発が抜群に容易。
- マルチプラットフォームである。
- Apache(Webサーバ)との高い親和性。
- 各種ライブラリの充実。
- 親しみやすい記述方法。
- ユーザー入力(Post/Get/Cookie)を自動的に変数に変換。
- デバッグが容易。
- ユーザーによる機能拡張が可能。
1. 多彩なデータベースをサポートし、その開発が抜群に容易
Oracle、DB2、SQLServer、Sybase、Informixをはじめとする商用DBMSや、
PostgreSQL、MySQLといったフリーDBMSへのインタフェースを標準で備えています。
また、データベースとプログラミング言語との仲立ちである、
ODBCインターフェースに対応する関数も標準で備えています。
2. マルチプラットフォームである。
マルチプラットフォームとは、開発環境や動作環境に制約がなく、
メジャーな開発環境や動作環境に対応していることです。
例えばOSなら、Linux、Windows、商用UNIX(Macなど)に対応していることが最低限求められます。
PHPは、マルチプラットフォームの歴史が長いプログラミング言語です。
Macだけへの対応から、最近マルチプラットフォーム化したSwift、
Windowsだけの対応から、最近マルチプラットフォーム化したC#などに比べて、
どのプラットフォームでも、環境構築と開発のノウハウが確立されています。
3. Apache(Webサーバ)との高い親和性。
CGI(Perl)とは異なり、Apache の一部として動作させることができるので、
無駄なリソースを消費せず、処理も高速です。
必要に応じてCGIとして動作させることも可能です。
4. 各種ライブラリの充実
PDF/GIF生成・Session管理・XMLの読み取りや生成・IMAP・LDAP・Javaとの連携などに対応した
サードパーティー性のライブラリが充実しています。
5. 親しみやすい記述方法
PHPの基本的な文法は、C、Java、Perlなどの他のメジャーなプログラミング言語と共通しています。
ですので、これらの言語のプログラマーは、違和感なくPHPを使い始めることができます。
例として、クラス定義を以下に載せます。
class StrUtil{ public static function str(String $rawString = null, String $alternative = ""){ if(isset($rawString)){ return $rawString; }else{ return $alternative; } } }
また、ファイル全体をスクリプトとして作成する必要はなく、
HTML文書のうちの必要な部分だけをPHPで書くといった使い方ができます。
<ol> <?php echo "<li>PHP</li>"; ?> </ol>
6. ユーザー入力(Post/Get/Cookie)を自動的に変数に変換
GETメソッドのパラメーターは、$_GET、POSTメソッドのパラメーターは$_POST、クッキーの中身は$_COOKIEという、
自動定義変数に格納されています。
そのため、これらを手動で取り出す処理を書く必要がなく、
プログラミングが容易になります。
7. デバッグが容易
エラーが発生した場合には、発生した行番号やエラー内容などを表示するためのHTML文が自動的に生成されます。
それにより、エラー情報がブラウザ上に表示されるのでデバッグが容易です。
8. ユーザーによる機能拡張が可能
オープンソースなので、関数やクラスを独自に開発できます。
以下のコードは、与えられたデータのリストを、
自動的に順序付きリストのHTMLにして出力してくれる関数を開発して、実行しています。