文中の説明画像をクリックすると拡大します。
PHPって何?
PHPとはWebサーバーで動作するプログラミング言語のことです。
「PHP: Hypertext Preprocessor」という文字列の各単語の先頭の3文字をつなげたものです。PHPの定義の中に「PHP」という文字列が含まれています。こういうのを「再帰的」といいちょっとユーモアがあって面白いですね。
PHPはWeb制作の世界では広く普及しています。当サイトで使用しているWordPressもPHPで開発されたものです。
他にはLaravelやCakePHPといったフレームワークもPHPで作られていますし、EC-CUBEというネットショップを構築するシステムもPHPで作られています。
PHPの特徴
PHPには以下のような特徴があります。
スクリプト言語である
プログラミング言語には大きく分けて2つのタイプがあります。一つがコンパイル言語、もう一つがスクリプト言語です。PHPはそのうちのスクリプト言語にあたります。
スクリプト言語とは、インタプリタ型(逐次解釈しながら実行するプログラム)で、ソースコードを1行ずつ解析して機械語に変換します。PHPの他にはJavaScriptやRuby、Pythonなどがスクリプト言語にあたります。
コンパイル言語とは記述されたソースコードに対してコンパイルという作業を行う事で、ソースコードを予めコンピュータが解釈できる「機械語」に変換してから実行するという特徴があります。言語としてはCやC++、Fortranなどがあげられます。
最近ではスクリプト言語でもコンパイル言語でもないC#やJavaのような中間的な言語も存在します。
スクリプト言語の特徴
コンパイル言語と比べると実行速度が遅い
記述されたソースコードを実行のたびに1行ずつ機械語に変換するため、コンパイル言語と比べると動作が遅くなります。しかし、最近では「実行時コンパイラ」「中間表現」などの技術が発展し、スクリプト言語であっても高速な実行が可能となってきています。
プログラムの修正が容易
ソースコードをコンパイルする必要がないので、修正が容易です。
PHPは他のコンパイル型の言語と比べて動作は遅くなりますが、動作環境なども無料で用意することができるため学習コストは低く、プログラミングを始めたばかりの人からベテランまで広く使われているプログラミング言語の一つです。
サーバーサイドで動作する
PHPはWebサーバー上で動作するプログラミング言語です。Webサーバーに予めPHPをインストールしておき、クライアント(ブラウザ)でアクセスすることでPHPを実行させます。
PHPを使うことでデータベースと連携したWebサイトを構築したり、アクセスしたユーザーごとに違ったページを表示させたりすることで、会員制のWebサイトの開発などに向いています。
通常のHTMLの場合では、いつ誰がアクセスしても同じ内容を表示します。これを「静的なページ」と呼びます。一方で、PHPのようにアクセスするユーザーや時間などによって、表示する内容を変化するページの事を「動的なページ」と呼びます。
HTMLに埋め込んで使用できる
PHPはHTML文書に埋め込んで動作させることができます。このような特徴のため「ほとんどHTMLだけなんだけど、一部分だけ動的に変化するページを作りたい」という場合に非常に使い勝手がよくなっています。
しかしHTMLの中にPHPを記述することで、ソースコードが煩雑になったり分かりにくくなったりすることもあります。
PHPの基本構文
PHPによるプログラムの基本的な構文について紹介します。まず基本的なルールとしてPHPのプログラムを記述したファイルの拡張子は「.php」にする必要があります。
最初のブラウザに「Hello World」と表示するプログラムを紹介します。ファイル名を「index.php」として以下のように記述します。
【PHP】
<?php echo "Hello World"; ?>
このソースコードをPHPとして動作させることで、ブラウザ上に「Hello World」と表示されます。ソースコード中の「<?php」の記述はPHPのプログラムが開始することを表し、「?>」がPHPのプログラムが終了することを表しています。「<?php」で始まり「?>」で終わるのがPHPによるプログラムの特徴です。
またプログラミングの共通の特徴として「条件分岐(if文)」と「繰り返し(for文)」が使えることがあげられます。
【PHP(条件分岐)】
<?php $flag = true; if ($flag) { echo "フラグは真です"; } ?>
これは$flagという変数の真偽をif文により条件分岐させているプログラムです。プログラムの1行目に$flagに「true(真)」を代入し、2行目のif文で条件分岐させています。$flagはtrueなので、if文の中のecho文が実行されて、ブラウザ上に「フラグは真です」と表示されます。
次に繰り返し文を紹介します。
【PHP(繰り返し)】
<?php for ($i=0; $i<5; $i++){ echo $i; } ?>
これは$iという変数が0からスタートして数値を1つずつ増やしながら4まで表示させるプログラムです。少しややこしいのですが、このプログラムを実行するとブラウザ上には「01234」という文字列が表示されます。
PHPはこのようにプログラムを書く事でHTMLだけではできない複雑な処理を実行することが可能です。
WordPressとPHP
現在、様々なWebサイトで使われているWordPressも、PHPによって構築されています。
これまで紹介してきたようにWebサイトにPHPを採用することで、データベースと連携したWebサイトの構築や、管理画面(ダッシュボード)と呼ばれるページからブラウザ経由で記事を投稿できる機能などを実装することができます。
WordPressではテンプレートと呼ばれるPHPのプログラムを準備することで、目的や好みに応じてWebページの構造や見た目を自由にカスタマイズすることができ、さらにPHPで開発された各種のプラグインを導入することで、WordPressに機能を追加することも可能です。
PHPを使う事でWordPressでは複雑な処理を行うことができますが、その反面、セキュリティ対策についても十分に配慮する必要があります。WordPressやプラグインは頻繁にバージョンアップしています。バージョンアップは機能追加だけでなく、セキュリティ対策についても行われます。
WordPressの本体やプラグインに対して新しいバージョンが公開されると、管理画面(ダッシュボード)上に通知が表示されるようになっています。もし通知が表示されていたら、速やかにバージョンアップを行う事をおすすめします。
WordPressのセキュリティについては、参考までに以下のページもご覧ください。
Movable TypeとPerl
WordPressが普及する前は、Movable Typeと呼ばれるブログソフトウェアが流行していました。Movable Typeは「MT」と略されることもあり、Perlという言語で開発されています。
Movable Typeでは新しくページを追加したり記事を書いたりすると、「再構築」と呼ばれるプロセスを行います。これはデータベースからデータを取り出し、Webサイトに必要なページを全て静的なHTMLファイルとして書き出す作業です。
WordPressがアクセスのたびに動的にページを生成していることに対して、Movable Typeでは再構築により生成された静的なページにアクセスすることになるので、アクセスによるサーバーの負荷はMovable Typeの方が少ないと言えます。
まとめ
- PHPは、サーバーサイドで動作するプログラミング言語である。
- PHPを使うことで動的にページを生成することができる。
- PHPは、WordPressやEC-CUBEなどのアプリケーション、CakePHPやLaravelなどのフレームワークでも採用されている。