PHP チートシート
最終更新
Hello World とタグ
PHP のコードは <?php ... ?> タグの中にあり、外側はそのまま出力として送られます。
| 操作 | 構文 |
|---|---|
| PHP の開始 / 終了 | <?php ... ?> |
| テキストを出力 | echo "Hello, World!"; |
| 書式付きで出力 | printf("%d items", $n); |
| 短い echo (HTML 内) | <?= $name ?> |
| 一行コメント | // comment または # comment |
| ブロックコメント | /* comment */ |
| 文の終端 | ; |
| ファイルを実行 (CLI) | php index.php |
変数と型
変数は $ で始まり、動的に型付けされます。
| 操作 | 構文 |
|---|---|
| 変数を宣言 | $name = "Ada"; |
| 定数 | const PI = 3.14; または define("PI", 3.14); |
| スカラー型 | int, float, string, bool |
| null | $x = null; |
| 型を調べる | gettype($x), is_int($x), is_array($x) |
| 型をキャスト | (int) $str, (string) $num |
| 変数の存在 / 設定 | isset($x), empty($x) |
| 文字列補間 | echo "Hi $name"; |
文字列
二重引用符は変数を展開し、単一引用符はそのままです。
| 操作 | 構文 |
|---|---|
| 連結 | $a . $b |
| 長さ | strlen($s) |
| 大文字 / 小文字 | strtoupper($s), strtolower($s) |
| 部分文字列 | substr($s, 0, 5) |
| 位置を探す | strpos($s, "x") |
| 置換 | str_replace("a", "b", $s) |
| 配列に分割 | explode(",", $csv) |
| 配列を連結 | implode(",", $arr) |
| 空白を除去 | trim($s) |
| 文字列を整形 | sprintf("%05.2f", $n) |
配列 (連想配列を含む)
1 つの配列型でインデックス付きリストとキーと値のマップの両方をまかないます。
| 操作 | 構文 |
|---|---|
| インデックス付き配列 | $nums = [1, 2, 3]; |
| 連想配列 | $user = ["name" => "Ada", "age" => 30]; |
| 要素にアクセス | $nums[0], $user["name"] |
| 追加 | $nums[] = 4; |
| キーを設定 | $user["role"] = "admin"; |
| 長さ | count($nums) |
| キーを確認 | isset($user["name"]), array_key_exists("name", $user) |
| 要素を削除 | unset($nums[1]); |
| 配列を結合 | array_merge($a, $b) |
| キー => 値 を反復 | foreach ($user as $k => $v) { ... } |
制御フロー
条件分岐とループは C 風の構文に従います。
| 操作 | 構文 |
|---|---|
| if / elseif / else | if ($x > 0) { ... } elseif (...) { ... } else { ... } |
| 三項演算子 | $y = $x > 0 ? "pos" : "neg"; |
| null 合体 | $name = $_GET["name"] ?? "guest"; |
| switch | switch ($day) { case 1: ...; break; default: ... } |
| for ループ | for ($i = 0; $i < 10; $i++) { ... } |
| while ループ | while ($x < 100) { ... } |
| foreach | foreach ($items as $item) { ... } |
| match 式 | $r = match($x) { 1 => "one", default => "?" }; |
| break / continue | break;, continue; |
関数
関数は型、デフォルト値、可変長引数を宣言できます。
| 操作 | 構文 |
|---|---|
| 基本的な関数 | function add($a, $b) { return $a + $b; } |
| 型付きの引数と戻り値 | function add(int $a, int $b): int { ... } |
| デフォルト値 | function greet($name = "guest") { ... } |
| 可変長引数 | function sum(...$nums) { ... } |
| 参照渡し | function inc(&$x) { $x++; } |
| 無名関数 | $f = function($x) { return $x * 2; }; |
| アロー関数 | $f = fn($x) => $x * 2; |
| 外側の変数を使う | function() use ($n) { ... } |
スーパーグローバル
あらゆるスコープで使える組み込み配列で、主にリクエストデータ用です。
| スーパーグローバル | 保持する内容 |
|---|---|
$_GET | URL のクエリ文字列のパラメータ |
$_POST | POST で送られたフォームデータ |
$_REQUEST | $_GET、$_POST、$_COOKIE を統合 |
$_SESSION | ユーザーごとのセッションデータ (session_start() 後) |
$_COOKIE | ブラウザが送ったクッキー |
$_SERVER | サーバーとリクエストの情報 (REQUEST_METHOD など) |
$_FILES | アップロードされたファイルのメタデータ |
$_ENV | 環境変数 |
よく使う配列関数
PHP には数百もの配列ヘルパーがありますが、これらが主力です。
| 関数 | 機能 |
|---|---|
array_map($fn, $arr) | すべての要素を変換 |
array_filter($arr, $fn) | コールバックが true の要素を残す |
array_reduce($arr, $fn, $init) | 単一の値に畳み込む |
in_array($v, $arr) | 値が存在するか確認 |
array_keys($arr) / array_values($arr) | キーまたは値を取得 |
sort($arr) / rsort($arr) | その場でソート (昇順 / 降順) |
usort($arr, $cmp) | 独自の比較関数でソート |
array_slice($arr, 1, 3) | 一部を取り出す |
array_push($arr, $v) / array_pop($arr) | 末尾に追加 / 削除 |
クラスとオブジェクト指向
PHP はクラス、継承、インターフェース、可視性修飾子をサポートします。
| 操作 | 構文 |
|---|---|
| クラスを定義 | class User { ... } |
| 可視性付きのプロパティ | public string $name; |
| コンストラクタ | function __construct($name) { $this->name = $name; } |
| コンストラクタプロモーション | function __construct(public string $name) {} |
| インスタンスを生成 | $u = new User("Ada"); |
| メンバにアクセス | $u->name, $u->save() |
| 静的メンバ | User::$count, User::create() |
| 継承 | class Admin extends User { ... } |
| インターフェース | interface Saveable { public function save(); } |
| インターフェースを実装 | class User implements Saveable { ... } |
最もよく使う PHP の構文を 1 ページにまとめました。この PHP チートシートは、言語の中核のクイックリファレンスです。変数と型、文字列、配列 (連想配列を含む)、制御フロー、関数、$_GET や $_POST のようなスーパーグローバル、そしてクラスを収録しています。
ここに載っているものはすべて標準の PHP で、モダンなバージョンで動きます。必要なものをコピーするか、PHP プレイグラウンドですべてのスニペットをその場で試してみてください。サーバーのセットアップは不要です。
PHP チートシート よくある質問
この PHP チートシートは無料ですか?
はい。この PHP チートシートは完全に無料で、登録も不要です。ブックマークしておけば、文字列関数や配列ヘルパー、スーパーグローバルを調べたいときにいつでも戻ってこられます。
PHP の == と === の違いは何ですか?
== は緩い比較で、比較する前にオペランドを共通の型に変換するため、0 == "0" や 0 == "" さえバージョンによって意外なふるまいをすることがあります。=== は厳密な比較で、値が等しくかつ同じ型のときだけ true を返すので、0 === "0" は false です。型のジャグリングによるバグを避けるため === を優先しましょう。PHP の連想配列とは何ですか?
連想配列は、数値インデックスの代わりに (または併せて) 名前付きの文字列キーを使う PHP の配列で、
["name" => "Ada", "age" => 30] のようなものです。PHP には順序付きリストとキーと値のマップを兼ねる単一の配列型があるので、$user["name"] のようにキーで値にアクセスし、foreach ($user as $key => $value) で反復します。PHP をオンラインで練習できますか?
はい。PHP プレイグラウンドを開けば、このチートシートのどのスニペットもブラウザ上で実行できます。サーバーやローカルの PHP のインストールは不要です。体系的に学びたいときは、Coddy の無料インタラクティブ PHP コースが、変数と配列から関数、オブジェクト指向まで段階的に導いてくれます。
このチートシートは初心者に向いていますか?
はい。最もよく使うトピック (変数、文字列、配列、制御フロー) から高度なもの (スーパーグローバルとオブジェクト指向) へと並べてあるので、初日から上のセクションを使い、残りには慣れながら進めます。