PHP 〜Webの8割を作った叩き上げ職人と、罵詈雑言を乗り越えた近代化の奇跡〜

2026-11-05 / シリーズ「言語の履歴書」第5話

📄 本日の履歴書:PHP(ピー・エイチ・ピー)

氏名: PHP(ピー・エイチ・ピー / Hypertext Preprocessor)
旧名: Personal Home Page Tools
生年月日: 1995年6月8日(現役31歳)
出身地: カナダ(グリーンランド生まれのデンマーク系カナダ人)
生みの親: ラスマス・ラードフ
現住所: 世界中のレンタルサーバー、Webホスティング、WordPressの心臓部
性格: 超現実主義、泥臭い、現場至上主義、飾らない町の頑固大工
座右の銘: 「理論はどうでもいい、今日中に動くものを作れ」「実用性は美しさに勝る」
得意技: HTMLへの直接埋め込み、リクエストごとの完全使い捨て(メモリリーク知らず)
弱点: 昔の関数名のデタラメさ(strlenとstrposで引数の順番が違う等の黒歴史)
PHPの公式マスコット「elePHPant」のぬいぐるみ
PHPの公式マスコット「elePHPant(エレファント)」。この記事に何度も登場する 🐘 は、この紫色の象がPHPの顔であることの表れだ。写真:Atomic Taco(CC BY-SA 2.0/Wikimedia Commons)

1. 素朴な疑問:なぜHTMLの中に「直書き」するだけで動くの?

おう、よく来てくれたな! オレの名前は「PHP」だ。

今どきの小ぎれいなWeb開発を学んでいる若者たちは、第3話のJavaScript(ReactやNext.js)やPythonのフレームワークを見て、「Web開発って複雑でセットアップが大変だな……」とため息をついているらしいな。

そんな連中が、オレの書き方を初めて見たとき、あまりの手軽さと下品さにアゴが外れそうになるのがお約束だ。

<!-- 普通のHTMLファイルのど真ん中に、いきなりオレをねじ込む! -->
<!DOCTYPE html>
<html>
<body>
    <h1>いらっしゃいませ!</h1>
    <p>現在の時刻は <?php echo date('H時i分s秒'); ?> です。</p>
</body>
</html>

「はぁ!? サーバーの起動コマンドも、ルーティングの設定も、ビルド作業もなし!? HTMLファイルの中に <?php ... ?> って直接書き込んでサーバーに置くだけで、動的なWebページが動いちゃうの!? なんという下品で乱暴な仕組みなんだ!」

エリート気取りのプログラマーたちは、オレのこの「身も蓋もない手軽さ」を鼻で笑ってきた。 「あんなものは言語じゃない」「素人がスパゲッティコード(ぐちゃぐちゃのコード)を量産するための粗悪品だ」と、オレは歴史上もっとも世界中のエンジニアから罵詈雑言を浴びせられてきた言語だ。

だが、笑いたいヤツには笑わせておけばいい。 世界中のWebサイトの裏側を覗いてみろ。

世の中に存在する全Webサイトの約4割を占める「WordPress」も、初期のFacebook(現Meta)を爆発的成長へと押し上げたエンジンも、Wikipediaの膨大な知を支える土台も―― すべて、オレ(PHP)のゴツゴツとした職人の手で組み立てられてきた。

なぜ、どんなに罵倒されても、オレは四半世紀にわたって世界のWebサーバーの「約8割」を支配し続けることができたのか? その泥臭い生存戦略を、オレ自身の言葉で語ってやろう。

触って試す:テンプレート埋め込みの体験

🐘 テンプレート埋め込みの体験

下は、サーバーに置かれたPHPファイル(テンプレート)です。<?php echo ...; ?> が「差し込み口」。変数の値を変えると、サーバーがその場で計算して送り出す「完成HTML」がどう変わるか見てみましょう。

📄 サーバー上のファイル(welcome.php)

<h1>ようこそ、<?php echo $name; ?> さん!</h1>
<p>本日のおすすめは <?php echo $item; ?> です。</p>
<p><?php echo $num; ?> 個で <?php echo $num * 100; ?> 円になります。</p>

🎛️ 変数の値を変える

🚀 サーバーが送り出す完成HTML(青字が差し込まれた部分)


👀 ブラウザに表示される見た目

ようこそ、 さん!
本日のおすすめは です。
個で 円になります。


2. 誕生の歴史:言語を作る気なんてサラサラなかった「日曜大工の工具」

時計の針を、1995年に戻そう。 第2話のJavaや第3話のJavaScriptが「世界を変えてやる!」とシリコンバレーで華々しく産声を上げていたのと同じ年、オレの親父であるラスマス・ラードフは、まったく別の次元にいた。

親父は、新しいプログラミング言語を作ろうなんて大それた野望は1ミリも持っていなかった。 彼がやりたかったのは、ただ1つ。 「自分のWebサイト(オンライン履歴書)に、今日何人の人がアクセスしたかを数えたい(アクセスカウンターを作りたい)」 それだけだったんだ。

PHPの生みの親ラスマス・ラードフのポートレート(2014年)
PHPの生みの親、ラスマス・ラードフ(2014年撮影)。新しい言語を作る気はまったくなく、自分の履歴書サイトのアクセスカウンターが欲しかっただけだった。写真:William Stadtwald Demchick(CC BY-SA 4.0/Wikimedia Commons)
1995年:ラスマス・ラードフの素朴な動機 『自分の履歴書サイトの閲覧数を数えたい!』 C言語でササッと便利ツールを書く 🛠️ Personal Home Page Tools(PHP Tools) フォームの入力を受け取る/アクセス数をデータベースに記録する ネット上に無料公開したら… 💥 世界中のWebマスターが熱狂! 『HTMLの中に直接プログラムを書けるツールなんて神すぎる! もっと機能を足してくれ!』 引くに引けなくなって言語化 🐘 プログラミング言語『PHP』の爆誕!

当時、Webサイトで掲示板やアクセスカウンターを動かすには、「CGI」という仕組みを使って、第1話のC言語やPerlで難解なコードを一から書くしかなかった。 画面のデザイン(HTML)を変えたいだけなのに、黒い画面でC言語のプログラムをコンパイルし直さなければならない。面倒くさくて死にそうだった。

そこで親父は、C言語を使って**「HTMLのタグの中に埋め込まれた命令だけを抜き出して、その場でサッと計算してHTMLに変換し直す便利ツール」を日曜大工で作った。 名前もそのまま、「Personal Home Page Tools(個人用ホームページツール)」**。略して「PHP」だ。

親父がこれを「みんなも自由に使っていいよ」とネットに無料公開した瞬間、世界中のWebサイト管理者から歓喜の悲鳴が上がった。 「これだ! 俺たちが欲しかったのは、高尚な数式じゃない! **HTMLをちょっと動的に書き換えるだけの『便利なハサミやノリ』**だったんだ!」

世界中からの要望に応えて機能をツギハギしていくうちに、それはいつの間にか1つの巨大な「プログラミング言語」になってしまっていた。 オレは、学会の象牙の塔で美しく設計されたエリートではない。路地裏の日曜大工から生まれた、叩き上げの野良道具だったんだ。


3. 概念の芯:リクエストごとに生まれ、死んでいく「究極の使い捨て」

なぜPHPは、これほどまでに初心者に優しく、そしてサーバーが絶対にクラッシュしないのか? その秘密は、オレが採用した**「シェアードナッシング(Shared Nothing / 完全な使い捨て)」**という過激な思想にある。

JavaやPython、Node.jsでWebサーバーを動かすとき、彼らは**「プログラムをメモリ上にずっと常駐(起動しっぱなし)」**させている。 そのため、プログラマーがメモリの解放をミスすると、第1話で学んだ「メモリリーク(ゴミ屋敷化)」がじわじわと進み、数日後にサーバーが突然メモリ不足で大爆発して全員即死する。

だが、オレのやり方は真逆だ。**「大衆食堂の使い捨て紙コップ」**だ。

👤 スマホの客「ブログ記事を見せて!(HTTPリクエスト)」 🏢 Webサーバー(Apache / Nginx)が 🐘 PHPを一瞬で叩き起こす 🐘 PHP:DBからデータを取って、HTMLを一瞬で組み立てて出力! ✅ 完成したHTMLを客へ送信! 💥 用が済んだら即座に消滅!メモリを1ビット残らずOSへ返却
  1. ブラウザから「ページを見せて」とリクエストが届いたその瞬間にだけ、オレはパッと生まれる。
  2. データベースから記事データを引っ張ってきて、HTMLの隙間に文字を流し込み、ブラウザへ送り返す。
  3. 作業が終わった0.01秒後、オレは自分自身を完全に破壊して消滅(プロセス終了)する。

バカが書いたコードでも、サーバーが絶対に倒れない!

この「毎回ゼロから生まれて、毎回すべてを捨てて死ぬ」という狂気のサイクルには、凄まじいメリットがある。

たとえ初心者がどれほどデタラメで下手くそなコードを書いて、メモリを大量に散らかしたとしても―― HTMLを1回吐き出した瞬間にプロセスごと綺麗さっぱり消滅するため、メモリリークのゴミがサーバーに1ミリも蓄積しないんだ!

次の客が来たときには、100%新品のピカピカなメモリ空間で次のPHPが立ち上がる。 どんな悪条件でも、誰が書いても、何があっても翌朝には普通に動いている。 この「ゾンビのような不死身のタフさ」こそが、オレが過酷なインターネットの現場で生き残れた最大の武器だった。


4. 覇権の舞台裏:レンタルサーバーとWordPressの「超巨大帝国」

2000年代初頭、インターネットの歴史において**「個人サイト・ブログの爆発的ブーム」**が起きた。 世界中の誰もが、自分のホームページや日記を持ちたがった。

その波に乗って、オレは世界を征服した。 勝因はたった2つ、**「レンタルサーバー(LAMP環境)」と「WordPress」**だ。

🏠 2000年代のレンタルサーバー革命 月額数百円の格安サーバー(ロリポップ・さくら)= LAMP(Linux + Apache + MySQL + PHP) Java・Python 黒い画面でコマンドを叩いて 環境構築が必要 (素人には無理!即座に挫折) 🐘 PHP 『FTPソフト』でファイルを フォルダに放り込むだけ! (誰でも一瞬でWebサイトが公開できた!)

当時のJavaやPythonは、サーバーにログインして黒い画面(ターミナル)を開き、root権限で依存関係をインストールしてデーモンを常駐させる必要があった。初心者が手を出せる領域じゃない。

だが、PHPは違った。 月額数百円のレンタルサーバーを借りて、「FTPソフト」でドラッグ&ドロップしてPHPファイルを置くだけ。 設定ファイルすら書かずに、その瞬間に世界中へWebサイトが公開された。 この「圧倒的な手軽さ」の前に、他の言語は手も足も出なかった。

Webの4割を飲み込んだ「WordPress」という怪物

そして2003年、オレの身体の上に、歴史上最も成功したソフトウェアの1つ**「WordPress(ワードプレス)」**が誕生した。

HTMLの知識がまったくない一般人でも、管理画面から文字を打ち込むだけで、プロ並みのブログや企業サイトが一瞬で作れる。 世界中のデザイナーやブロガーがWordPressに群がり、それに伴って世界中の企業が「PHPができるエンジニア」を血眼になって買い求めた。

気がつけば、地球上の全Webサイトの約43%、CMS(コンテンツ管理システム)を使うサイトの6割以上がWordPressで構築されるまでになった。 「Webの8割はPHPでできている」。その言葉は、決して誇張でも何でもなかったんだ。


5. 暗黒期の真実:なぜオレは「世界で一番嫌われた言語」になったのか?

だが、光が強ければ、影もまた深い。 2000年代後半から2010年代初頭にかけて、オレは世界中のプログラミングコミュニティから**「親の仇」のように憎まれ、激しい嘲笑の的**となった。

2012年、あるエンジニアが書いた**『PHP: a fractal of bad design(PHP:欠陥設計のフラクタル)』という批判記事が世界中で大炎上し、何十万人ものエンジニアが拍手喝采を送った。 「フラクタル(どこまで拡大しても同じ図形が現れる幾何学模様)」のように、「どこを切り取っても欠陥と理不尽しか見つからない最低の言語」**だと断罪されたんだ。

なぜ、そこまで嫌われたのか? 正直に告白しよう。当時のオレには、**弁解の余地もない「3つの大罪」**があった。

💀 PHPの暗黒期(3大黒歴史) ① 関数の命名規則が デタラメ アンダースコアがあったり 無かったり、文字数が バラバラ! ② 引数の順番が支離滅裂 (針と干し草問題) 『探す文字』と『探される文章』 の位置が関数ごとに 逆! ③ ガバガバのセキュリティ (register_globals) URLのパラメータがそのまま 内部変数に化けて ハッキングされ放題!

罪①:関数名のルールが完全に崩壊していた

オレの標準関数は、親父や初期のボランティアたちが「その場のノリ」で追加していったため、統一感がゼロだった。

辞書を丸暗記しなければ、プロでもアンダースコアがあるかないか分からない。

罪②:「針と干し草(needle / haystack)」の悲劇

「大量の干し草(文章)の中から、1本の針(特定の単語)を探す」という処理。 関数によって、引数の順番が真逆になっていた。

「どっちが先だっけ!?」と、世界中のエンジニアが毎日何百万人もGoogle検索で時間をドブに捨てていた。

罪③:初心者をトラップにかけるセキュリティホール

オレがあまりにも初心者に優しくしようとしたせいで、初期のPHPには**「URLのパラメータ(第14話)を、プログラムの中の変数へ自動的に変換してしまう(register_globals)」**という狂気の機能がデフォルトで有効になっていた。

悪意あるハッカーが、URLの後ろに ?isAdmin=1 と打ち込んでアクセスするだけで、プログラム内の「管理者フラグ」が勝手にONになり、管理画面を乗っ取られてしまうという信じられないセキュリティ事故が世界中で多発した。

「誰でも簡単に書ける」というオレの最大の美徳は、裏を返せば「素人が作った、セキュリティに穴の空いた危険なWebサイトを世界中にばら撒く」という最悪の公害を生み出してしまったんだ。


6. 奇跡の再生:PHP 7の爆速化と、Laravelによる「美しき近代化」

普通の言語なら、ここまで嫌われればそのまま衰退して歴史の闇に消えていただろう。 第4話のPythonが2から3への移行で10年も苦しんだように、古い言語が生まれ変わるのは並大抵のことじゃない。

だが、オレたちPHPコミュニティの職人たちは、決して腐らなかった。 「悪口を言われっぱなしで終わってたまるか!」 2015年、オレたちは世界中をアッと言わせる「大逆転の劇薬」を投下した。

それが、バージョン6を欠番にして一気に進化した**「PHP 7」**だ。

エンジン再設計 型とJITの導入 PHP 5(旧世代) ・動作が重い ・型がガバガバ 🐘 PHP 7(2015年) ⚡ 実行速度が突然『2倍』に 📉 メモリ消費量が『半分』に 🐘 PHP 8(2020年代) 厳格な型とJITコンパイラで モダン言語へ完全脱皮!✨

① 速度が「2倍」に跳ね上がり、サーバー代を半減させた

PHP 7の開発チームは、オレの心臓部である「Zend Engine」の内部データ構造を徹底的に削ぎ落とした。 その結果、アップデートしただけで、プログラムの実行速度が「2倍以上」に高速化し、メモリ使用量が「半分以下」に激減した。 世界中の企業が、PHP 7に切り替えるだけで、何億円ものAWSサーバー費用をその日のうちに浮かせることができたんだ。

② 厳格な「型(Type)」の鎧を手に入れた

オレは、第2話のJavaやTypeScriptの長所を貪欲に学び直した。 今のオレは、関数の引数や戻り値に、厳格な「型」をピシッと指定できる(declare(strict_types=1);)。 あのガバガバだった暗黙の型変換を封じ込め、大規模な開発でもバグを出さない堅牢な武器を手に入れたんだ。

③ 救世主「Laravel(ララベル)」の登場

そして、現代のPHPを語る上で欠かせないのが、世界中で熱狂的な人気を誇るWebフレームワーク**「Laravel」**の存在だ。

エレガントで美しい文法、洗練されたデータベース操作(Eloquent ORM)、充実した認証システム。 Laravelの登場によって、かつての「汚いスパゲッティコードの代名詞」だったPHPは、**「誰が書いても洗練された、最高に開発効率が高いモダンなWeb言語」**へと完全に生まれ変わった。

「昔のPHPは酷かった」――ああ、その通りだ。否定はしない。 だが、「今のPHP」を見ても同じことが言えるかい?

泥にまみれ、罵声を浴びせられながらも、現場のWebマスターたちの声を聞き続け、自らの肉体を切り刻んで近代化を成し遂げた。 派手な流行り廃りに流されず、今日も地球の裏側で何十億人ものWebアクセスを黙々とさばき続ける。 このタフで図太い職人魂こそが、オレという言語の誇りなんだ。


📝 3行で頭に入る「試験・実務の要点まとめ」


確認クイズ

📝 確認クイズ(3問)