PHP ぴーえいちぴー
簡単に言うとこんな感じ!
PHPは「Webページを動かすための料理レシピ」みたいなものだよ!ブラウザからリクエストが来たら、サーバー側でPHPが動いてデータベースから情報を取ってきて、それをHTML(見た目)に混ぜてユーザーに返すんだ。WordPressもPHPで動いてるんだよ!
PHPとは
PHPは、Webサイトやアプリのサーバーサイド(サーバー側)で動作するプログラミング言語です。正式名称は PHP: Hypertext Preprocessor(かつては「Personal Home Page Tools」の略でしたが、現在は再帰的な略語になっています)。オープンソースで無料で使えるため、世界中のWebサービスで広く採用されています。
PHPの最大の特徴は、HTMLの中にプログラムコードを埋め込んで書けることです。ユーザーがWebページを開くと、サーバー上でPHPのコードが実行され、その結果がHTMLとしてブラウザに届けられます。つまり「人によって表示内容が変わる」「ログインしたら自分専用の画面が出る」といった動的なWebページを作るのに向いています。
WordPress(世界シェア40%超のCMS)、Wikipedia、Facebookの初期版など、名だたるWebサービスがPHPで作られてきました。現在もWebサーバーで動くプログラミング言語として最も普及している言語の一つであり、エンジニアの採用市場でも安定した需要があります。
PHPの仕組みと役割
PHPがWebでどう動くか
[ユーザーのブラウザ]
|
| ① URLにアクセス(リクエスト)
↓
[Webサーバー(Apache/Nginx)]
|
| ② PHPファイルを実行
↓
[PHPエンジン]
|
| ③ データベースに問い合わせ(必要なら)
↓
[データベース(MySQL等)]
|
| ④ データを返す
↓
[PHPエンジン] → HTMLを生成
|
| ⑤ HTMLをブラウザに返す
↓
[ユーザーのブラウザ] → 画面表示!
PHPコードの書き方(イメージ)
HTMLの中に <?php ... ?> タグでPHPコードを埋め込みます。
<!DOCTYPE html>
<html>
<body>
<h1>こんにちは、<?php echo $username; ?>さん!</h1>
<p>今日は <?php echo date('Y年m月d日'); ?> です。</p>
</body>
</html>
サーバーでこのコードが実行されると、ブラウザには「こんにちは、田中さん!」のようなHTMLが届きます。PHPの部分はユーザーには見えません。
PHPの主な用途
| 用途 | 具体例 |
|---|---|
| CMS(コンテンツ管理システム) | WordPress、Drupal、Joomla |
| ECサイト | WooCommerce、EC-CUBE |
| Webアプリケーション | SNS、予約システム、社内システム |
| APIサーバー | スマホアプリのバックエンド |
| フォーム処理 | お問い合わせ・会員登録フォーム |
覚え方
「PHPはWebの料理人」 ブラウザ(お客様)からの注文(リクエスト)を受けて、データベース(食材倉庫)から材料を取り出し、HTML(料理)に仕上げて返す、舞台裏の料理人!
PHPのバージョン変遷と歴史
- 1994年 — ラスマス・ラードフ(デンマーク系カナダ人)が個人のWebサイト管理ツールとして開発。「Personal Home Page Tools」が名前の由来
- 1997年 — PHP 3リリース。本格的な言語として再設計され、世界中に普及し始める
- 2000年 — PHP 4リリース。大規模サイトでの利用が増加
- 2004年 — PHP 5リリース。オブジェクト指向(クラスや継承などの本格的な設計手法)が強化され、大規模開発に対応
- 2009年 — WordPress 2.x〜3.x系の普及とともにPHPユーザーが爆発的増加
- 2015年 — PHP 7リリース。処理速度がPHP 5比で最大2倍に高速化。モダン言語としての地位確立
- 2020年 — PHP 8.0リリース。JITコンパイラ導入でさらなる高速化。型システムの強化
- 2024年 — PHP 8.3が現役の最新安定版。セキュリティ・パフォーマンスともに現代的な水準に
PHPと他のサーバーサイド言語の比較
PHPを選ぶべき場面・避けるべき場面
| 向いている場面 | 向いていない場面 |
|---|---|
| WordPressベースのサイト構築 | AI・機械学習の開発(Python向き) |
| 既存PHPシステムの保守・拡張 | リアルタイムチャット・ゲーム(Node.js向き) |
| 安価なレンタルサーバーで動かしたい | スマホアプリのロジック本体 |
| 国産パッケージ(EC-CUBE等)の採用 | 大規模な科学技術計算 |
| 中小規模のWebアプリ新規開発 | — |
PHPの主要フレームワーク
フレームワークとは「よく使う機能をあらかじめまとめた開発の土台」のことです。素のPHPより安全・効率的に開発できます。
| フレームワーク | 特徴 | 向いている用途 |
|---|---|---|
| Laravel | 機能豊富・日本語情報が多い | 中〜大規模Webアプリ |
| Symfony | 大規模・エンタープライズ向け | 企業の基幹系システム |
| CakePHP | 国内に実績多い・学習コスト低め | 中小規模Webアプリ |
| Slim | 軽量・APIサーバー向け | REST API構築 |
セキュリティと注意点
PHPは歴史が長い分、古いコードやバージョンにはセキュリティ上の問題が見つかりやすいという側面もあります。システムを発注・選定する際は以下の点を確認しましょう。
- PHPのバージョンは最新の安定版か?(PHP 7.4以下はサポート終了。PHP 8.x推奨)
- フレームワークを使っているか?(素のPHPベタ書きよりも安全)
- SQLインジェクション対策(データベースへの不正操作を防ぐ対策)がされているか
- 定期的なアップデートの運用体制があるか
関連用語
- ./068-html.md — Webページの骨格を作るマークアップ言語。PHPはHTMLと組み合わせて動的ページを生成する
- ./070-mysql.md — PHPと最もよく組み合わされるオープンソースのリレーショナルデータベース
- ./071-laravel.md — PHPの代表的なフレームワーク。モダンなWeb開発の標準的な選択肢
- ./072-wordpress.md — PHPで作られた世界最大シェアのCMS。ブログ・コーポレートサイトに広く使われる
- ./073-cms.md — コンテンツ管理システム(Content Management System)の総称
- ./074-server-side.md — サーバー側で処理を行うプログラムの仕組み全般
- ./075-api.md — PHPで構築することも多い、アプリ間のデータやり取りの窓口
- ./076-javascript.md — ブラウザ側(クライアントサイド)で動くスクリプト言語。PHPと役割が補完し合う