PHP チートシート
検索・印刷できる PHP 8.3+ のリファレンス — 構文、文字列、配列、関数、クラス、enum、属性、モダンな機能。無料。
Basics & types
10declare(strict_types=1);
Enforce strict scalar type checks
$x = 1;
Variables start with a dollar sign
const MAX = 100;
Compile-time constant
gettype($x)
Get the type of a value
(int) $x
Cast to an integer
is_int($x)
Type-check helper (is_string, ...)
int|string $x
Union type declaration
?string $x
Nullable type (string or null)
$a ?? 'default'
Null coalescing operator
$a ??= 'default'
Assign only if null
Strings
11"Hello $name"
Double quotes interpolate variables
'literal $x'
Single quotes are literal
$a . $b
Concatenate strings
strlen($s)
Byte length of a string
str_contains($s, 'a')
Check for a substring
str_starts_with($s, 'a')
Check the prefix
substr($s, 0, 3)
Extract part of a string
str_replace('a', 'b', $s)
Replace all occurrences
explode(',', $s)
Split into an array
sprintf('%05.2f', $n)
Formatted string output
trim($s)
Strip surrounding whitespace
Arrays
11$a = [1, 2, 3];
Indexed array literal
$a = ['k' => 'v'];
Associative array
array_map(fn($x) => $x * 2, $a)
Transform each element
array_filter($a, fn($x) => $x > 0)
Keep matching elements
array_reduce($a, $fn, 0)
Reduce to a single value
in_array($v, $a, true)
Strict value check
array_keys($a)
Get all keys
array_merge($a, $b)
Merge arrays
[...$a, ...$b]
Spread/merge arrays
count($a)
Number of elements
[$x, $y] = $a;
Array destructuring
Functions
9function f(int $a): int {}
Typed parameters and return
function f(int $a = 1) {}
Default parameter value
function f(int ...$nums) {}
Variadic parameters
f(...$args)
Spread arguments
f(name: 'Sam', age: 30)
Named arguments
$fn = fn($x) => $x + 1;
Arrow function (auto-captures scope)
function () use ($x) {}
Closure capturing a variable
$fn = strlen(...);
First-class callable syntax
function f(): never {}
Never returns (throws or exits)
Control flow
9if ($a) {} elseif ($b) {} else {}
Conditional branches
$a ? $b : $c
Ternary expression
$a ?: $b
Short ternary (falsy fallback)
match ($x) { 1, 2 => 'a', default => 'b' }
Strict, expression-based match
switch ($x) { case 1: break; }
Loose multi-way branch
foreach ($a as $k => $v) {}
Iterate keys and values
for ($i = 0; $i < 10; $i++) {}
Counted loop
while ($cond) {}
Loop while a condition holds
break / continue
Exit or skip a loop iteration
Classes & OOP
10class A extends B implements C {}
Inheritance and interfaces
public function __construct(private int $id) {}
Constructor property promotion
public readonly string $name;
Immutable after initialization
public function f(): static {}
Return the late-bound type
static::create()
Late static binding
$obj?->method()
Null-safe method call
abstract class A {}
Cannot be instantiated directly
trait T {} use T;
Reusable horizontal code
$obj instanceof A
Type check at runtime
A::class
Fully-qualified class name string
Enums
9enum Status { case Active; case Draft; }
Pure enumeration
enum Status: string { case A = 'a'; }
Backed enum (string/int)
Status::Active
Reference an enum case
Status::from('a')
Build from a backing value
Status::tryFrom('x')
Returns null if invalid
Status::cases()
Array of all cases
$status->value
Backing value of a case
$status->name
Name of the case
enum E { public function label() {} }
Enums can have methods
Error handling
9try {} catch (Throwable $e) {}
Catch errors and exceptions
catch (TypeError | ValueError $e)
Catch multiple types
catch (Exception)
Non-capturing catch (no variable)
finally {}
Always runs after try/catch
throw new RuntimeException('x')
Throw an exception
throw $e;
Re-throw the caught exception
$x = $v ?? throw new Error();
Throw as an expression
$e->getMessage()
Read the error message
$e->getPrevious()
Get the chained exception
Attributes & modern
9#[Attribute] class Route {}
Declare a custom attribute
#[Route('/home')]
Apply an attribute to a target
new ReflectionClass($x)
Inspect a class via reflection
$ref->getAttributes()
Read declared attributes
json_encode($data)
Serialize to JSON
json_decode($s, true)
Decode JSON to an array
array_is_list($a)
True if keys are 0..n in order
str_word_count($s)
Count words in a string
$obj::class
Class name from an instance
「:q」に一致する項目はありません。
PHP チートシートについて
このPHPチートシートは、現代のPHPを1ページで検索できる形に凝縮しています。基礎と型、文字列、配列、関数、制御フロー、クラスとOOP、enum、エラーハンドリング、属性とその他の最新機能を扱います。すべての行は実行可能なスニペットと平易な説明で構成されています。
対象はPHP 8.3以降なので、enum、readonlyプロパティ、コンストラクタプロパティプロモーション、名前付き引数、match式、アロー関数、null安全呼び出し、属性といった現行PHPを特徴づける機能に加え、日常的に使う文字列・配列関数も見つかります。
このページは無料で完全にクライアントサイドです。入力するたびに検索が行を絞り込み、固定表示のセクションメニューでシート内を移動でき、ワンクリックで任意のスニペットをコピーでき、印刷ボタンで紙のPHPリファレンスに変えられます。
PHP チートシートの使い方
- Basics & typesからEnums、Error handling、Attributes & modernまでの目次を確認します。
- 検索ボックスに関数名やキーワードを入力し、シート全体を瞬時に絞り込みます。
- 固定表示のサイドバーナビゲーションから、Classes & OOPのようなセクションにジャンプします。
- 任意のスニペットまたはそのコピーアイコンをクリックして、PHPコードをクリップボードにコピーします。
- 紙で全体のリファレンスが欲しければPrintを押します。
よくある質問
PHP 8.3以降向けに書かれています。enum、属性、最新機能のセクションでは、従来の構文に加えてreadonlyプロパティ、コンストラクタプロモーション、match式、名前付き引数、null安全呼び出しを扱っています。
9つのセクションです。基礎と型、文字列、配列、関数、制御フロー、クラスとOOP、enum、エラーハンドリング、属性と最新機能で、実際のプロジェクトで日常的に使うPHPの部分をカバーしています。
ページ上部の検索ボックスを使ってください。全セクションの全行をライブにフィルタリングしマッチ数を表示するので、array_mapのように入力するだけで関連するスニペットに瞬時に絞り込めます。
はい。コード自体またはホバー時のコピーアイコンをクリックすると、スニペットがクリップボードに入り、短い「コピーしました!」の表示で確認できます。
はい、完全に無料です。ブラウザ内で表示され、アカウント登録は不要で、何度でも印刷できます。
人気の検索
php cheat sheet
php syntax reference
php array functions
php string functions
php enums example
php 8 attributes
php oop cheat sheet
php try catch example
お困りですか?
このツールで問題が見つかりましたか?チームにお知らせください。