PHP

Web 開発で広く使われるサーバーサイド言語。動的な Web ページ生成を得意とする

プログラミング言語Web開発
PHP」の技術書を見る →

PHP とは

PHP は、Web サイトのサーバー側で動作することを主目的に設計されたプログラミング言語だ。出発点は 1994 年、Rasmus Lerdorf が自分のオンライン履歴書へのアクセスを記録するために C 言語で書いた小さな CGI プログラム群で、1995 年 6 月にそのソースコードが公開された。当初の名前 Personal Home Page Tools が示すとおり個人的な道具だったが、HTML の中に直接コードを埋め込める手軽さから Web の黎明期に急速に広まり、WordPress をはじめとする多くの著名なソフトウェアの基盤になっている。

何が得意か

用途
動的ページ生成ユーザーごとに内容が変わるページ
フォーム処理入力データの受け取り・保存
CMSWordPress などのブログ・サイト構築
Web アプリLaravel などのフレームワーク利用

学習のハードルが低く、レンタルサーバーでも動かしやすいため、Web 開発の入り口として選ばれることが多い。

バージョン系列とサポート期間

PHP は毎年 11 月ごろに新しいマイナー系列を出す運用が定着している。各系列はおよそ 2 年間がアクティブサポート (バグ修正を含む) で、その後さらに 2 年間はセキュリティ修正のみとなり、合計 4 年ほどで寿命が尽きる。2026 年 8 月時点の最新の安定系列は 2025 年 11 月に出た 8.5 で、バグ修正まで受けられるのは 8.4 と 8.5、8.2 と 8.3 はセキュリティ修正だけの段階に入っている (8.2 は 2026 年 12 月末で終了)。レンタルサーバーや古い案件では期限切れの版が動き続けていることが珍しくないため、まず稼働中の版がどの段階にあるかを確かめるのが実務の起点になる。

進化してきた言語

PHP は「設計が一貫していない」と批判された時期もあったが、バージョンを重ねる中で大きく改善した。7 系列で引数と戻り値の型宣言が整い、8.0 では引数を名前で指定する記法、複数の型を許す共用型、コンストラクタの引数から直接プロパティを宣言する書き方、match 式、null 安全演算子がまとめて入った。Laravel のような洗練されたフレームワークの登場もあり、大規模開発にも十分耐える言語になっている。5 系列の頃の知識のまま PHP を語ると、8 系列の実像とはかなりずれる。

速度についてはもう少し細かい話がある。8.0 では JIT コンパイラが導入されたが、公式のリリース資料は、合成ベンチマークで 3 倍程度、一部の長時間動作するアプリケーションで 1.5〜2 倍の改善が出る一方、典型的なアプリケーションの性能は 7.4 と同程度だと明記している。Web リクエストは 1 回が短く、JIT が機械語を作って元を取る前に処理が終わってしまうためだ。JIT を有効にすれば Web アプリが速くなるという理解は正確ではなく、効くのは画像処理や数値計算のように同じコードを回し続ける処理に限られる。

採用時の注意点

手軽さゆえに、設計を意識せず書くと保守しにくいコードになりやすい言語でもある。特にデータベースへの入力を適切に扱わないと、SQL インジェクションなどの脆弱性につながる。値を文字列として SQL に連結せず、PDO の prepare のようにプレースホルダを置いたプリペアドステートメントへ値を渡す形にすれば、値がどう書かれていても命令として解釈されない。フレームワークの作法に沿い、入力値の検証を徹底することが安全な開発の前提になる。新規の大規模開発では、他言語と比較したうえで適性を判断するとよい。

もう一つ現場で効くのが、動かす版を固定することだ。手元とサーバーで系列が違うと、片方だけで動く構文や挙動の差に足をすくわれる。composer.json の require に php のバージョン制約を書き、CI でも同じ系列を使うようにしておけば、期限切れの版で動かし続ける事故と、新しい構文が本番で落ちる事故の両方を防げる。

この記事は役に立ちましたか?

関連用語

関連する記事