🐘
最近のPHPDocでの型の書き方
最近のPHPDocでの型の書き方が覚えられないので、まとめておきます。
配列
キーと値の型
キーがTKey
、値がTValue
:
/**
* @param array<TKey, TValue> $array
*/
キーがint
、値がstring
:
/**
* @param array<int, string> $array
*/
オブジェクトっぽい配列
以下の配列の場合、
$array = ["hello", "world", "foo" => new stdClass, 28 => false];
以下のように書きます。
/**
* @param array{0: string, 1: string, foo: stdClass, 28: false} $array
*/
オプションのキーには?
を最後に付けます。
/**
* @param array{optional?: string, bar: int} $array
*/
スカラー
配列のキー
array-key
はint
とstring
のスーパータイプです。
/**
* @param array-key $key
*/
正の整数
/**
* @param positive-int $positiveInt
*/
クラス文字列
/**
* @param class-string $classname
*/
型を指定することもできます。
/**
* @param class-string<A> $classname
*/
callable文字列
/**
* @param callable-string $callable
*/
Discussion