æè¿ã®PHPDocã§ã®åã®æ¸ãæ¹
æè¿ã®PHPDocã§ã®åã®æ¸ãæ¹ãè¦ããããªãã®ã§ãã¾ã¨ãã¦ããã¾ãã
é å
ãã¼ã¨å¤ã®å
ãã¼ãTKey
ãå¤ãTValue
ï¼
/**
* @param array<TKey, TValue> $array
*/
ãã¼ãint
ãå¤ãstring
ï¼
/**
* @param array<int, string> $array
*/
ãã¼ãint
ãå¤ãint
ï¼
/**
* @param array<int, int> $array
*/
[10 => 100, 20 => 200, 30 => 300]
ã®ãããªé
åã§è¦ç´ æ°ã¯ä¸æã
ãªãã¸ã§ã¯ãã£ã½ãé å
以ä¸ã®é åã®å ´åã
$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
*/
以ä¸ã®é
åã¯ãã©ã¡ããåãã§ãint
ã®è¦ç´ ã 2ã¤ã® [10, 20]
ã®ãããªé
åã§ãã
/**
* @param array{0: int, 1: int} $array1
* @param array{int, int} $array2
*/
ãªã¹ã
ãªã¹ãã¨ã¯ãã¼ã 0 ããå§ã¾ãé£çªã®é
åã§ããarray_is_list()
ã§ true ã¨ãªãé
åã§ãã
/**
* @param list<string> $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
*/
ã¸ã§ããªã¯ã¹
/**
* @template T
* @param T $a
* @return T
*/
function foo($a)
{
return $a;
}
弿° $a
ã®å㯠Tï¼å夿°ï¼ã§ãè¿ãå¤ã®åã¯å¼æ°ã¨åãã«ãªãã¾ãã
åè
Date: 2021/03/10