プログラミング言語

PHP ぴーえいちぴー

サーバーサイドスクリプトWeb開発オープンソースLaravelWordPress動的コンテンツ
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 得意分野 Web専用・CMS 習得難易度 ★★☆☆☆ 低め 代表FW Laravel / Symfony ホスティング ◎ 安価に多数あり 代表事例 WordPress・EC-CUBE Web世界シェア 約77%(2024年) Python 得意分野 AI・データ分析・Web 習得難易度 ★★☆☆☆ 低め 代表FW Django / Flask ホスティング ○ 対応増えてきた 代表事例 Instagram・YouTube 近年トレンド AI需要で急上昇中 Node.js 得意分野 リアルタイム・API 習得難易度 ★★★☆☆ 中程度 代表FW Express / NestJS ホスティング ○ クラウド系に多い 代表事例 Netflix・LinkedIn 特徴 JS統一でフル開発可 Ruby 得意分野 Web開発全般 習得難易度 ★★☆☆☆ 低め 代表FW Ruby on Rails ホスティング △ 選択肢やや少ない 代表事例 Shopify・GitHub 特徴 高速プロトタイプ ※ Web世界シェアはW3Techsによるサーバーサイド言語調査(2024年)

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と役割が補完し合う