ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 に埋め込み可能:
タグで HTML 中に直接記述 - 動的型付け: 型宣言は任意(PHP 7+ で strict_types 可能)
- 豊富な標準関数: 文字列・配列・日付・ファイル等 5000 以上
- OOP 完全対応: クラス、継承、インターフェース、Trait、抽象クラス、final
- 例外処理: try / catch / finally、PHP 7 から Error クラスも throw 可能
- JIT コンパイル(PHP 8+): 計算処理で 2〜3 倍の性能向上
Hello World と基本構文
'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アノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?