プログラミング言語

PHP

Rasmus Lerdorf / 1995年登場

Web に特化して生まれたサーバサイド言語。WordPress や多くの Web サービスを支え、レンタルサーバで手軽に動く。PHP 8 で性能・型が大幅に改善した。

3つの要点
TL;DR
  1. Web 専用に生まれたサーバサイド言語。
  2. WordPress や Laravel で今も Web の大きな割合を占める。
  3. 手軽な Web ならまず動く、PHP 8 で性能も改善。

基本情報

仕様と特徴

PHP のロゴ
製品・技術の概要PHPWeb に特化して生まれたサーバサイド言語。WordPress や多くの Web サービスを支え、レンタルサーバで手軽に動く。PHP 8 で性能・型が大幅に改善した。
型付け
動的弱い型付け近年は型宣言が拡充)
実行方式
インタプリタZend Engine)
パラダイム
マルチパラダイム手続き / OOP)
登場
1995年Rasmus Lerdorf
この言語の強み
Web に特化し導入が手軽レンタルサーバ)WordPress・Laravel など巨大なエコシステム
活躍する領域
Web サイトCMSWordPress)Web アプリ(Laravel) / レンタルサーバ運用

選定ガイド

選定ポイント

採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。

採用に向く条件

選ぶ理由

  1. Web に特化し導入が手軽(レンタルサーバ)
  2. WordPress・Laravel など巨大なエコシステム
  3. PHP 8 で実行速度・型機能が向上

事前に確認する条件

考慮すべき点

  1. 歴史的に一貫性のない標準関数
  2. 弱い型付けの落とし穴
  3. 言語イメージが古いと見られがち

向いている用途

こんな用途に向く

Web サイト・CMS(WordPress)Web アプリ(Laravel)レンタルサーバ運用

詳しい解説

もっと詳しく

どんな言語か

PHP は 1995 年に Rasmus Lerdorf が公開した、Web のサーバサイド処理に特化した言語です。もともとは個人サイト用の小さなツール集として始まり、HTML に処理を埋め込める手軽さから一気に普及しました。今日でも Web の大きな部分を支えており、CMS の WordPress やフレームワークの Laravel が代表例です。

横にスクロール

Web サーバーが FastCGI で PHP-FPM ワーカーへ要求を渡し、OPcache の opcode を Zend VM が実行して応答し、要求ごとの状態を破棄する流れ
PHP-FPM はワーカープールで要求を受け、OPcache のコンパイル済み opcode を再利用します。要求状態は処理後に破棄されますが、プロセス、OPcache、外部セッション、DB 接続の寿命は別に管理します。

Web に直結している

PHP の核心は、Web で動かすことを前提に設計されている点です。リクエストごとにスクリプトを実行し、HTML を生成して返す、という流れが言語とランタイムに自然に組み込まれています。

普及を後押ししたのが導入の手軽さです。多くのレンタルサーバーに最初から用意されており、ファイルを置くだけで動かせます。

仕組み・特徴

  • リクエスト単位の実行モデル: ワーカーは 1 リクエストずつ処理し、ユーザーランドの要求状態は終了時に破棄する。この単純さが並行時の安定と水平スケールのしやすさにつながる一方、ワーカープロセス、OPcache、永続接続には別の寿命がある。
  • 実行基盤: 実運用では PHP-FPM(FastCGI)を NginxApache の後段に置く構成が定番。OPcache がコンパイル済みコードを再利用して高速化する。
  • PHP 8 での進化: JIT の導入や大幅な性能改善、型宣言・enum・名前付き引数などの言語機能が整い、「遅い・型が緩い」という旧来の評価は薄れている。
<?php
// 弱い型付け:文字列と数値が暗黙に変換される
var_dump("10" == 10);   // true になりやすい
var_dump("10" === 10);  // 厳密比較 === なら false

得意・不得意

  • 得意: Web サイト・Web アプリのサーバサイド。素早い立ち上げと、共用ホスティングでの手軽さ。
  • 不得意: Web から外れた用途(重い数値計算や常駐処理など)。

他の Web 言語との違い

観点PHPRuby/Python 系
Web との結びつき言語・実行が Web 前提汎用言語+Web フレームワーク
実行モデルリクエスト単位(shared-nothing)アプリサーバー常駐が多い
導入共用サーバーに標準・手軽環境構築が要る
代表WordPress / LaravelRails / Django

つまずきやすいところ

弱い型付けと関数の一貫性

暗黙の型変換が思わぬ比較結果を生むため、比較は厳密比較 === を使うのが安全です。標準関数は歴史的経緯から命名や引数順の一貫性が薄く、都度確認が要ります。Web 直結ゆえ入力検証・エスケープ(XSS/SQL インジェクション対策)を徹底し、サポートされる PHP バージョンを使いましょう。

総じて PHP は、Web に直結した手軽さと巨大な導入基盤を持ち、PHP 8 での性能・型の進化により現役の Web 開発言語であり続けています。

言語選定

PHPを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

Web サイト・CMS(WordPress)

比較で見る軸

型付け: 動的・弱い型付け(近年は型宣言が拡充) / 実行方式: インタプリタ(Zend Engine) / パラダイム: マルチパラダイム(手続き / OOP)

導入後に効く点

WordPress・Laravel など巨大なエコシステム

先に潰すリスク

歴史的に一貫性のない標準関数

数字・仕様の読み方
型付け
動的・弱い型付け(近年は型宣言が拡充)
実行方式
インタプリタ(Zend Engine)
パラダイム
マルチパラダイム(手続き / OOP)
登場
1995年
Rasmus Lerdorf

判断チェックリスト

  • 自社の用途が「Web サイト・CMS(WordPress) / Web アプリ(Laravel)」に近いか確認する。
  • 強みである「Web に特化し導入が手軽(レンタルサーバ)」が本当に評価軸になるか確認する。
  • 注意点の「歴史的に一貫性のない標準関数」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

Web サイト・CMS(WordPress)Web アプリ(Laravel)レンタルサーバ運用

最初の一歩

Hello, World!

<?php
echo "Hello, World!";
公式ドキュメント