ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
PHP とは
PHP(PHP: Hypertext Preprocessor、再帰的頭字語)は、Web アプリケーション開発に特化したサーバーサイドスクリプト言語です。HTML に埋め込んで実行できる構文と、低い学習コスト、豊富な標準関数により、世界中の Web サイトで広く使われています。
W3Techs の統計では、サーバーサイド言語を特定できる Web サイトのうち 約 75% が PHP を採用しています。WordPress(約 43% のシェア)が PHP で書かれていることが大きな理由です。
歴史と進化
| バージョン | リリース | 主要機能 |
|---|---|---|
| PHP 1.0 | 1995 | Rasmus Lerdorf が個人ホームページ用に作成 |
| PHP 4 | 2000 | Zend Engine 1.0、オブジェクト指向の基礎 |
| PHP 5.x | 2004〜2014 | 本格的な OOP、PDO、名前空間、Trait |
| PHP 7.0 | 2015 | Zend Engine 3、性能 2 倍、スカラー型宣言、戻り値型宣言 |
| PHP 7.4 | 2019 | 型付きプロパティ、アロー関数、null 合体代入演算子 |
| PHP 8.0 | 2020 | JIT コンパイラ、Union 型、Named Arguments、Attributes、Match 式 |
| PHP 8.1 | 2021 | enum、readonly プロパティ、Fibers、never 戻り値型 |
| PHP 8.2 | 2022 | readonly クラス、DNF 型、定数の trait 化 |
| PHP 8.3 | 2023 | typed class 定数、json_validate()、Override 属性 |
言語の特徴
- HTML に埋め込み可能:
<?php ... ?>タグで HTML 中に直接記述 - 動的型付け: 型宣言は任意(PHP 7+ で strict_types 可能)
- 豊富な標準関数: 文字列・配列・日付・ファイル等 5000 以上
- OOP 完全対応: クラス、継承、インターフェース、Trait、抽象クラス、final
- 例外処理: try / catch / finally、PHP 7 から Error クラスも throw 可能
- JIT コンパイル(PHP 8+): 計算処理で 2〜3 倍の性能向上
Hello World と基本構文
<?php
// 単純な出力
echo "Hello, World!\n";
// 変数と型
$name = "PHP";
$version = 8.3;
$isActive = true;
// 文字列補間(ダブルクォート)
echo "言語: $name バージョン: $version\n";
// 配列
$langs = ['PHP', 'JavaScript', 'Python'];
foreach ($langs as $lang) {
echo "- $lang\n";
}
// 連想配列
$user = ['name' => 'Alice', 'age' => 30];
echo "{$user['name']} は {$user['age']} 歳\n";
// 関数(型宣言付き、PHP 8+)
function greet(string $name, int $times = 1): string {
return str_repeat("Hello $name! ", $times);
}
echo greet('PHP', 3);
// クラス(PHP 8.1+ enum, readonly)
enum Status: string {
case Active = 'active';
case Inactive = 'inactive';
}
readonly class Product {
public function __construct(
public string $name,
public int $price,
public Status $status = Status::Active,
) {}
}
$p = new Product('Book', 1500);
echo "{$p->name}: {$p->price}円 ({$p->status->value})\n";
インストールと確認
# macOS (Homebrew)
brew install php
php -v
# Ubuntu / Debian
sudo apt update
sudo apt install -y php php-cli php-fpm php-mysql php-mbstring php-xml
php -v
# CentOS / RHEL / Rocky Linux
sudo dnf install -y php php-cli php-fpm
# Windows (公式バイナリ)
# https://windows.php.net/download/ から ZIP をダウンロード
# 解凍 → PATH に追加
# バージョン確認
php -v
# PHP 8.3.x (cli) (built: ...)
# Copyright (c) The PHP Group
# Zend Engine v4.3.x
# 拡張モジュール確認
php -m
# 内蔵 Web サーバー起動(開発用)
php -S localhost:8000
# CLI で 1 行実行
php -r "echo PHP_VERSION;"
実行モデル: PHP-FPM
本番環境では PHP-FPM(FastCGI Process Manager)を Nginx / Apache の背後で動かすのが標準です。リクエストごとにプロセスを起動する CGI より遥かに高速。
# Nginx 設定例
server {
listen 80;
server_name example.com;
root /var/www/html/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
エコシステム
| ツール | 役割 | 例 |
|---|---|---|
| Composer | 依存パッケージ管理(PHP の npm 相当) | composer require monolog/monolog |
| Packagist | パッケージリポジトリ | packagist.org |
| PECL | C 拡張モジュール(redis、xdebug 等) | pecl install redis |
| PHPUnit | 単体テストフレームワーク | vendor/bin/phpunit |
| PHPStan / Psalm | 静的解析 | vendor/bin/phpstan analyse |
| Xdebug | デバッガ・プロファイラ | IDE 連携でステップ実行 |
主要フレームワーク
- Laravel: 最大シェア。エレガントな構文、Eloquent ORM、Artisan CLI、Blade テンプレート。当 Wiki も Laravel 製
- Symfony: コンポーネント志向、エンタープライズ向け、Laravel の基盤でもある
- CakePHP: 規約優先の設計、日本での採用例も多い
- Slim / Lumen: マイクロフレームワーク、API 専用に最適
- WordPress / Drupal / Joomla: CMS(フレームワークではないが PHP の主用途)
FAQ
Q: PHP は遅いと聞くが本当?
A: PHP 5 時代の話です。PHP 7 で性能が 2 倍、PHP 8 の JIT でさらに 1.5〜2 倍に。現在は Python や Ruby より高速です。
Q: PHP は時代遅れ?
A: 古い構文や悪い慣習が残る一方、PHP 8 系の構文は非常にモダン(enum、readonly、Match 式、Attributes)。Laravel 11 / Symfony 7 等で活発に進化中です。
Q: どのバージョンを使えばよい?
A: 新規プロジェクトは PHP 8.3 (現行) または 8.2 (LTS 的)。PHP 7.4 以前は EOL なので本番禁止です。
Q: Python と PHP どちらを学ぶべき?
A: Web サイト / CMS / EC サイトを作るなら PHP、機械学習 / データ分析 / スクリプトなら Python。両方学んで損はありません。
📸 参考画像
※ 旧バージョンから引き継いだ参考画像です。手順・図解の補助としてご覧ください。

ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
- インストール方法
- 文法
- Composerのインストール
- 内部関数
- フレームワーク
- エラー一覧
- 改行出力
- printとechoの違い
- シングルクォートとダブルクォートの違い
- returnとyieldの違い
- var_dumpをログ出力
- CSV読み込み
- 待機・処理の遅延
- ログファイルにエラーを出力する方法
- エラーログ出力関数
- URLパラメータの配列化
- empty, is_null. issetの判定比較表
- httpステータスコードの付与
- バージョンの確認
- php.ini
- APIを呼び出す方法
- 外部ファイルを呼び出す方法
- カンマ区切りの文字列を配列に変換
- 配列からランダムに値を取り出す方法
- Webスクレイピング
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?