PHP

第1章 PHPが動く仕組み

  1. 最終更新日:
  2. 公開日:

この章では、PHPが動く仕組みを解説します。基本的な知識としてこの章の内容を理解していると、プログラミングスキルの上達するスピードを上げることができます。

PHPってなに?

まず、「PHP」と聞いてどのようなことをイメージするでしょうか。「WEBの技術」「プログラミング言語」「ホームページ」など...。
ここで「サーバー」というキーワードをイメージされた方。実はすでにPHPが動く仕組みをご存知なのかもしれません。そうでなかったとしても、かなり良い線いってます。
もちろん、それ以外の方もご安心ください。この後すぐに分かります。
「サーバー」はインターネットの世界において根幹を支える大切な存在です。
PHPの動く仕組みとセットで役割を覚えてしまいましょう。

サーバーについて

まずは「サーバー」から確認していきます。

サーバーにも様々な種類がありますが、ここでいうサーバーは「WEBサーバー」です。もしかしたら、「Apache(アパッチ)」「nginx(エンジンエックス)」などの名前を聞いたことがあるかもしれません。これらのアプリケーションが、WEBサーバーとしてコンピューター上で動作します。
なので、Apache、nginxが動いているコンピューターは、「WEBサーバーとしても動いている」と考えることができるのです。

次にWEBサーバーの役割を見ていきましょう。
例えば、あなたが毎日チェックしているブログをスマホで開くとします。
その場合、以下のような流れで開くと思います。

  1. (1) スマホのブラウザ(Safari)を起動
  2. (2) 「お気に入り」から、見たいブログを選択
  3. (3) ブラウザにブログが表示される

ここの、(2)〜(3)のところで、スマホとWEBサーバーの間で通信が行われています。
以下のようなイメージです。

図1

スマホとサーバーの通信図

スマホとWEBサーバー間の通信をイメージしていただけたでしょうか。
そうです。WEBサーバーは普段なに気なく見ているブログやホームページなどを見たいときに見られるよう、データを用意してくる働きをしています。

PHPが動く場所

PHPに話しを戻します。
多くの場合、PHPは図1の(3)の箇所で使用されることが多いです。
なぜかというと、ホームページやブログはいつも決まった形ではなく、見る人によって少しずつ違ったものを用意する必要があるからです。

例えばブログの記事一覧ページ。
1ページ目と2ページ目では、当然表示される記事一覧が異なりますよね。

別の例では、ブラウザで見ることができるFacebookもPHPを使用して構築されています。
タイムラインでは、アクセスする度に新しい友達の投稿が表示されたり、「友達かも?」の一覧が表示されていると思います。

これらも、WEBサーバーが「Facebookの最新のタイムラインが見たい」というリクエストを受け取ると、WEBサーバー上でPHPが動いてタイムラインのページを作成し、出来たページをスマホへ返します。
それがスマホのブラウザに表示され、私たちが最新のタイムラインを見ることが出来る、という仕組みです。

なぜPHPを使うのか

では、なぜPHPを使うのでしょうか。

プログラミング言語は他にもPerlやRuby、Pythonなどたくさん存在し、それぞれの言語のコミュニティは賑やかです。システム構築においても、PHP以外の言語で進められるケースも数多くあります。

そんな中でPHPを選ぶ1つの理由は、ホームページを構成するHTML(Hyper Text Markup Language)ととても相性が良いことが挙げられます。
HTML中にPHPを埋め込んで、表示の一部だけを動的にすることが簡単に実現できてしまいます。

もう1つの理由は、使っている人の多い言語なので困ったときに参照するドキュメントが豊富であることです。
「この処理ってどう書けばいいんだろう」といったときにインターネットで検索すると、たくさんの関連する記事がヒットします。
PHPの公式マニュアルも日本語の情報が豊富で、とても心強い存在です。

また、同じ理由から「フレームワーク」の開発もとても活発です。
フレームワークとは、プログラミングルールのアウトラインを決めたようなもので、複数人でアプリケーションを構築したり、引き継ぎを効率良く行えるようにしてくれる仕組みです。

以上、PHPの動く仕組みでした。WEBサーバーの存在する意味と一緒に、PHPがどこで使われているかを理解いただけたでしょうか。
次章より、いよいよコードを打って練習していきます。

記事一覧

  1. 第1章 PHPが動く仕組み
  2. 第2章 変数と定数
  3. 第3章 配列
  4. 第4章 スーパーグローバル
  5. 第5章 クッキーとセッション
  6. 第6章 サーバー情報の取得
  7. 第7章 if文
  8. 第8章 switch文
  9. 第9章 while文
  10. 第10章 for文
  11. 第11章 foreach文
  12. 第12章 独自の関数
  13. 第13章 オブジェクト指向
  14. 第14章 クラス
  15. 第15章 オブジェクト

記事一覧