Typehint PHP array
25 April 2025 (Updated 4 July 2026)
Typehint parameter type
/**
* @param array{
* authBearer: string,
* relationship: string,
* companyUser: string
* } $options
*/
private function createAdviser(array $options): void
{
$authBearer = $options['authBearer'];
$relationship = $options['relationship'];
$companyUser = $options['companyUser'];
$this->client->request('POST', '/v1/lead-advisers', [
'auth_bearer' => $authBearer,
'json' => [
'relationship' => $this->iriConverter->getIriFromResource($relationship),
'companyUser' => $this->iriConverter->getIriFromResource($companyUser),
],
]);
}
Typehint function return type
/**
* @return array{
* totalItems: int,
* paginatedResults: User[],
* }
*/
function searchByParams(Company $company): array
{
// code here...
}
Typehint class property
class Example
{
/**
* @var array{
* id: int,
* name: string,
* tags: string[],
* metadata?: array<string, mixed>
* }
*/
private array $data;
public function setData(array $data): void
{
$this->data = $data;
}
public function getData(): array
{
return $this->data;
}
}
Typehint variable (array of arrays)
/**
* @var array<int, array{
* name: string,
* jobTitle?: string
* }> $data
*/
$people = [
['name' => 'John Doe'],
['name' => 'Alice Smith', 'jobTitle' => 'Head of Marketing'],
];
Tagged:
PHP recipes