Menu
Coddy logo textTech

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 / elseif ($x > 0) { ... } elseif (...) { ... } else { ... }
三項演算子$y = $x > 0 ? "pos" : "neg";
null 合体$name = $_GET["name"] ?? "guest";
switchswitch ($day) { case 1: ...; break; default: ... }
for ループfor ($i = 0; $i < 10; $i++) { ... }
while ループwhile ($x < 100) { ... }
foreachforeach ($items as $item) { ... }
match 式$r = match($x) { 1 => "one", default => "?" };
break / continuebreak;, 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) { ... }

スーパーグローバル

あらゆるスコープで使える組み込み配列で、主にリクエストデータ用です。

スーパーグローバル保持する内容
$_GETURL のクエリ文字列のパラメータ
$_POSTPOST で送られたフォームデータ
$_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 コースが、変数と配列から関数、オブジェクト指向まで段階的に導いてくれます。
このチートシートは初心者に向いていますか?
はい。最もよく使うトピック (変数、文字列、配列、制御フロー) から高度なもの (スーパーグローバルとオブジェクト指向) へと並べてあるので、初日から上のセクションを使い、残りには慣れながら進めます。
Coddy programming languages illustration

CoddyでPHPを学ぼう

始める