PHP：キーワードと使用例

## **データ型と演算子**

| キーワード | 意味・使用用途 | 使用例 |
| --- | --- | --- |
| array | 配列を定義するためのキーワード | $array = array('りんご', 'みかん', 'バナナ'); |
| callable | 関数、メソッド、および Closure のような呼び出し可能なものを表すためのキーワード | function test(callable $callback) {...} |
| empty | 変数が空であるかどうかを判定するためのキーワード | if (empty($var)) {...} |
| instanceof | オブジェクトがあるクラスまたはそのサブクラスのインスタンスであるかどうかを判定するためのキーワード | if ($obj instanceof MyClass) {...} |
| list | 配列から複数の値を同時に取得するためのキーワード | list($a, $b, $c) = $array; |
| mixed | PHP 8 で導入された型指定で、任意の型を表すために使用される | function test(mixed $var) {...} |
| new | オブジェクトを生成するためのキーワード | $obj = new MyClass(); |
| unset | 変数を削除するためのキーワード | unset($var); |

## **制御構造**

| キーワード | 意味・使用用途 | 使用例 |
| --- | --- | --- |
| break | 現在のループまたはスイッチ構造を終了するためのキーワード | for ($i = 0; $i < 10; $i++) { if ($i == 5) { break; } } |
| continue | 現在のループの次のイテレーションに移動するためのキーワード | for ($i = 0; $i < 10; $i++) { if ($i == 5) { continue; } } |
| declare | スクリプトの動作を制御するためのキーワード | declare(strict_types=1); |
| do | while ループの本文を定義するためのキーワード | do {...} while ($var); |
| else | if 文で条件が false の場合に実行する文を定義するためのキーワード | if ($var) {...} else {...} |
| elseif | if 文で複数の条件に基づいて分岐するためのキーワード | if ($var1) {...} elseif ($var2) {...} else {...} |
| for | カウント制御を使用してループを実行するためのキーワード | for ($i = 0; $i < 10; $i++) {...} |
| foreach | 配列またはオブジェクトのプロパティに対してループを実行するためのキーワード | foreach ($array as $value) {...} |
| goto | 指定したラベルにジャンプするためのキーワード。コードの可読性を損なうため、使用を避けることが推奨されている | goto label; ... label: echo 'Hello, world!'; |
| if | 条件文を定義するためのキーワード | if ($var) {...} |
| return | 関数から値を返し、関数の実行を終了するためのキーワード | function test() { return 'Hello, world!'; } |
| switch | 複数の条件に基づいて分岐するためのキーワード | switch ($var) { case 1: ... break; case 2: ... break; default: ... break; } |
| throw | 例外をスローするためのキーワード | throw new Exception('Error message.'); |
| try | 例外を処理するためのキーワード。try ブロック内で例外が発生すると、対応する catch ブロックに処理が移る | try { ... } catch (Exception $e) { ... } |
| while | 条件が true の場合にループを続けるためのキーワード | while ($var) {...} |

## **関数**

| キーワード | 意味・使用用途 | 使用例 |
| --- | --- | --- |
| function | 関数を定義するためのキーワード | function test($var) {...} |
| global | グローバル変数を関数内で使用するためのキーワード。ただし、グローバル変数を使用することは推奨されていない | function test() { global $var; ... } |
| static | 静的変数を関数内で使用するためのキーワード | function test() { static $count = 0; $count++; ... } |

## **クラスとオブジェクト**

| キーワード | 意味・使用用途 | 使用例 |
| --- | --- | --- |
| class | クラスを定義するためのキーワード | class MyClass {...} |
| extends | クラスを継承するためのキーワード | class SubClass extends SuperClass {...} |
| new | クラスのインスタンスを作成するためのキーワード | $obj = new MyClass(); |
| instanceof | オブジェクトが指定されたクラスのインスタンスであるかどうかを判断するためのキーワード | if ($obj instanceof MyClass) {...} |
| public | クラスのメソッドやプロパティを、どこからでもアクセス可能にするためのキーワード。OOPで重要な概念の一つ | public function test() {...} |
| private | クラスのメソッドやプロパティを、クラスの内部からのみアクセス可能にするためのキーワード。OOPで重要な概念の一つ | private $var; |
| protected | クラスのメソッドやプロパティを、クラスの内部と、サブクラスからのみアクセス可能にするためのキーワード。OOPで重要な概念の一つ | protected function test() {...} |
| $this | クラス内で、自身のプロパティやメソッドにアクセスするためのキーワード | $this->var = 123; |
| __construct | クラスのインスタンスを作成する際に、自動的に呼び出されるメソッド。コンストラクタとも呼ばれる | public function __construct($var) {...} |
| __destruct | クラスのインスタンスが破棄される際に、自動的に呼び出されるメソッド。デストラクタとも呼ばれる | public function __destruct() {...} |
| interface | インターフェイスを定義するためのキーワード。複数のクラスで同じインターフェイスを実装することができる | interface MyInterface {...} |
| implements | インターフェイスを実装するためのキーワード | class MyClass implements MyInterface {...} |
| abstract | 抽象クラスを定義するためのキーワード。抽象クラスは直接インスタンス化することができず、サブクラスで具体的な実装を行う | abstract class MyAbstractClass {...} |
| final | クラス、メソッド、プロパティを、それ以上オーバーライドできないようにするためのキーワード | final class MyClass {...} |
| static | クラスの静的メンバーを定義するためのキーワード。静的メンバーは、インスタンスを生成せずにクラス自体からアクセス可能 | public static $count = 0; |
| self | クラス内で、自身の静的プロパティや静的メソッドにアクセスするためのキーワード | self::$count++; |
| parent | サブクラス内で、スーパークラスのメソッドやプロパティにアクセスするためのキーワード | parent::__construct(); |
| clone | オブジェクトのクローンを作成するためのキーワード。クローンは、元のオブジェクトの状態をコピーした新しいオブジェクト | $newObj = clone $oldObj; |
| interface | インターフェースを定義するためのキーワード。複数のクラスで同じインターフェイスを実装することができる | interface MyInterface {...} |
| trait | トレイトを定義するためのキーワード。トレイトは、クラスで使い回すためのメソッドやプロパティの集合 | trait MyTrait {...} |
| use | トレイトをクラスで使うためのキーワード | class MyClass { use MyTrait; } |
| instanceof | オブジェクトが指定されたクラスのインスタンスであるかどうかを判断するためのキーワード | if ($obj instanceof MyClass) {...} |
| is_a | オブジェクトが指定されたクラスまたは指定されたクラスを継承したクラスのインスタンスであるかどうかを判断するためのキーワード | if (is_a($obj, 'MyClass')) {...} |
| method_exists | オブジェクトが指定されたメソッドを持っているかどうかを判断するためのキーワード | if (method_exists($obj, 'test')) {...} |

****例外処理****

| キーワード | 意味・使用用途 | 使用例 |
| --- | --- | --- |
| try | 例外が発生する可能性があるコードブロックを定義するためのキーワード | try {...} |
| catch | 例外をキャッチして、処理するためのキーワード | catch (Exception $e) {...} |
| throw | 例外をスローするためのキーワード。スローされた例外は、try-catchブロックでキャッチされる | throw new Exception('An error occurred.'); |
| finally | 例外が発生してもしなくても、必ず実行されるコードブロックを定義するためのキーワード | finally {...} |

## **その他のキーワード**

| キーワード | 意味・使用用途 | 使用例 |
| --- | --- | --- |
| namespace | 名前空間を定義するためのキーワード。クラス名の衝突を防ぐために使用する | namespace MyNamespace; |
| use | 名前空間にあるクラスをインポートするためのキーワード。FQCN（完全修飾クラス名）を使わずにクラスを参照できる | use MyNamespace\MyClass; |
| const | 定数を定義するためのキーワード。定数は変更不可能で、クラス内でグローバルに参照できる | const MY_CONST = 123; |
| define | 定数を定義するための関数。クラス外で定数を定義する場合に使用する | define('MY_CONST', 123); |
| instanceof | オブジェクトが指定されたクラスのインスタンスであるかどうかを判断するためのキーワード | if ($obj instanceof MyClass) {...} |
| use | 名前空間にあるクラスをインポートするためのキーワード。FQCN（完全修飾クラス名）を使わずにクラスを参照できる | use MyNamespace\MyClass; |
| FILE | 現在のファイルのフルパスを表すマジック定数 | echo __FILE__; |
| LINE | 現在の行数を表すマジック定数 | echo __LINE__; |
| FUNCTION | 現在の関数名を表すマジック定数 | echo __FUNCTION__; |
| CLASS | 現在のクラス名を表すマジック定数 | echo __CLASS__; |
| METHOD | 現在のメソッド名を表すマジック定数 | echo __METHOD__; |
| NAMESPACE | 現在の名前空間を表すマジック定数 | echo __NAMESPACE__; |




## おまけ　PHP 8.1 でのキーワードをアルファベット順にナンバリング

| No. | キーワード |  | No. | キーワード |  | No. | キーワード |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | __halt_compiler |  | 20 | empty |  | 39 | private |  |
| 2 | abstract |  | 21 | enddeclare |  | 40 | protected |  |
| 3 | and |  | 22 | endfor |  | 41 | public |  |
| 4 | array |  | 23 | endforeach |  | 42 | require |  |
| 5 | as |  | 24 | endif |  | 43 | require_once |  |
| 6 | break |  | 25 | endswitch |  | 44 | return |  |
| 7 | callable |  | 26 | endwhile |  | 45 | static |  |
| 8 | case |  | 27 | eval |  | 46 | switch |  |
| 9 | catch |  | 28 | exit |  | 47 | throw |  |
| 10 | class |  | 29 | extends |  | 48 | trait |  |
| 11 | clone |  | 30 | final |  | 49 | try |  |
| 12 | const |  | 31 | finally |  | 50 | unset |  |
| 13 | continue |  | 32 | for |  | 51 | use |  |
| 14 | declare |  | 33 | foreach |  | 52 | var |  |
| 15 | default |  | 34 | function |  | 53 | while |  |
| 16 | die |  | 35 | global |  | 54 | xor |  |
| 17 | do |  | 36 | goto |  | 55 | yield |  |
| 18 | echo |  | 37 | if |  | 56 | match |  |
| 19 | else |  | 38 | implements |  | 57 | static |  |
|  |  |  |  |  |  | 58 | mixed |  |