Menu

PHPとは?意味・できること・動く仕組みを解説

PHPはサーバーサイドのスクリプト言語です。PHPファイルはWebサーバー上で実行され、組み立てたHTMLをブラウザに送ります。WordPressやLaravel、Webの大きな部分を支えており、コマンドラインのスクリプトとしても動きます。

このページのコードはエディタで実行できます - 編集してすぐに結果を確認できます。

PHPはWebページを作るためのサーバーサイドのスクリプト言語です。.phpファイルはWebサーバー上で実行されてHTMLを出力し(たとえばecho "<h1>Hello</h1>";)、サーバーはそのHTMLを訪問者のブラウザに送ります。ブラウザに届くのは結果だけで、PHPのコードは見えません。

Runを押してください。PHPが下のページを組み立て、Pageタブにはブラウザと同じ見た目で表示されます。

Outputタブに切り替えると、PHPが出力したそのままのHTMLが見えます。このテキストこそがブラウザが受け取る内容です。価格を変えたり品目を足したりして、もう一度実行してみてください。

PHPでできること

PHPはWebのために作られた言語で、今でも大部分はWebで動いています。

  • WebサイトとCMS。 WordPress、Drupal、JoomlaはPHPで書かれており、それらで作られたサイトもすべてPHPで動いています。
  • Webアプリケーション。 LaravelやSymfonyなどのフレームワークが、ショップ、ダッシュボード、SaaS、社内ツールに使われています。
  • API。 PHPスクリプトはHTMLの代わりにJSONを出力できます。多くのモバイルアプリやJavaScriptのフロントエンドは、この方法でデータを受け取っています。
  • コマンドラインのスクリプト。 cronジョブ、データ取り込み、レポート生成、デプロイツールはphp script.phpで実行され、Webサーバーは関係しません。

PHPのリクエストがHTMLになるまで

誰かがhttps://example.com/menu.phpを開くと、次のことが起こります。

  1. ブラウザがサーバーにHTTPリクエストを送ります。
  2. Webサーバー(Apache、PHP-FPMと組み合わせたNginx、またはPHPの組み込みサーバー)が.phpという拡張子を見て、ファイルをPHPに渡します。
  3. PHPはファイルを上から下へ実行します。<?php ... ?>タグの外にあるテキストはそのまま出力にコピーされ、タグの中のコードは実行されて、さらにテキストをechoできます。
  4. PHPが出力したものがレスポンスの本文になり、ブラウザがそれを描画します。
  5. PHPはすべてを忘れます。次のリクエストでは、スクリプトがまた最初から実行されます。

PHPのアプリケーションがセッションやデータベースを使うのは、ステップ5のためです。2つのリクエストの間で変数の中身は何も残りません。下のフォームでこの流れを確かめられます。実行してフォームに名前を入力し、Sendを押すと、同じスクリプトがもう一度実行され、今度は$_POSTに値が入っています。

htmlspecialcharsは<のような文字を&lt;に変換するので、<b>Ada</b>のような名前はマークアップにならず、文字として表示されます。訪問者から来た値はすべてこの方法で出力してください。詳しくはhtmlspecialcharsのページにあります。

PHPはHTMLに混ぜて書ける

PHPファイルは、コードだけのこともあれば、PHPの部分が埋め込まれたHTMLページのこともあります。ほとんどの仕事は3つのタグでこなせます。

タグ役割
<?php ... ?>中のコードを実行する
<?= $value ?><?php echo $value; ?>の短縮形
ファイル末尾の?>省略可能。PHPだけのファイルでは書かない

$hourを9にしてもう一度実行すると、別のあいさつが表示されます。

PHPのコードの見た目

変数は$で始まり、文は;で終わり、ダブルクォートの文字列には変数を埋め込めます。配列はリストとしても、キーと値のマップとしても使えます。

このスクリプトはHTMLタグを出力しないので、ここでの出力はただのテキストです。ターミナルから実行するのと同じコードです。

モダンなPHP(PHP 8)

PHP 8.0(2020年)でmatch式、名前付き引数、union型、str_contains()、JITコンパイラが追加され、PHP 8.1でenumとreadonlyプロパティが加わりました。PHP 8.3向けに書いたコードは次のようになります。

PHPの意味

PHPは「PHP: Hypertext Preprocessor」の略です。この名前は再帰的で、最初のPはPHP自身を指します。Rasmus Lerdorfは1995年に、自分のホームページ用のスクリプト群「Personal Home Page Tools」として最初のバージョンを公開し、現在の名前は1998年のPHP 3で採用されました。「ハイパーテキストのプリプロセッサ」という呼び名は役割をよく表しています。PHPは、ハイパーテキスト(HTML)が送られる前にファイルを処理するのです。

よくある最初のミス:.phpファイルをブラウザで直接開く

index.phpをダブルクリックするとローカルファイルとして開かれ、ブラウザはPHPのコードをそのまま表示するか、ダウンロードしようとします。相手側にPHPがないので、何も実行されません。.phpファイルは、PHPに渡してくれるWebサーバーから配信する必要があります。自分のパソコンでいちばん手軽なのは、PHPの組み込みサーバーです。

php -S localhost:8000

そのあとhttp://localhost:8000/index.phpを開きます。この方法とターミナルからスクリプトを実行する方法はPHPの実行方法で、PHPをパソコンに入れる手順はPHPのインストールで説明しています。

よくある質問

PHPは何の略ですか?

PHPは「PHP: Hypertext Preprocessor」の略で、再帰的な頭字語です。1995年の最初の名前は「Personal Home Page Tools」で、Rasmus Lerdorfが自分のWebサイト用に書いたスクリプト群に由来します。

PHPはフロントエンドとバックエンドのどちらの言語ですか?

バックエンドです。PHPはサーバー上で動き、ブラウザが受け取るのはスクリプトが出力したHTML(またはJSON)だけです。ブラウザがPHPのコードそのものを目にすることはありません。

PHPは主に何に使われますか?

サーバー側でWebページやWebアプリケーションを作るために使われます。コンテンツサイト、ショップ、管理画面、APIなどです。WordPress、Drupal、Magento、Laravel、SymfonyはすべてPHPで書かれています。cronジョブやデータ取り込みのようなコマンドラインのスクリプトにも使われます。

PHPは2026年でも使われていますか?

はい。W3Techsによると、サーバーサイド言語を判別できるWebサイトのおよそ4分の3がPHPを使っており、その大きな理由はWordPressです。言語の開発も活発で、PHP 8.0でmatch、名前付き引数、JITコンパイラが、PHP 8.1でenumとreadonlyプロパティが追加されました。

PHPは習得しやすいですか?

Web開発の最初の言語としては易しい部類です。<?php echo "Hello";と書いたファイルがそのまま動くページになり、どのレンタルサーバーでも動きます。難しいのは、htmlspecialcharsで出力をエスケープする、SQLにはプリペアドステートメントを使う、といった安全な習慣を早いうちに身につけることです。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める