# The ReflectionParameter class

(PHP 5, PHP 7, PHP 8)

## Introduction

The ReflectionParameter class retrieves information about function's or method's parameters.

To introspect function parameters, first create an instance of the ReflectionFunction or ReflectionMethod classes and then use their ReflectionFunctionAbstract::getParameters() method to retrieve an array of parameters.

## Class synopsis

class ReflectionParameter implements Reflector {
/* Properties */
public string $name;
/* Methods */
public function __construct(string|array|object `$function`, int|string `$param`)
public function allowsNull(): bool
public function canBePassedByValue(): bool
private function __clone(): void
public static function export(string `$function`, string `$parameter`, bool `$return` = ?): string
public function getAttributes(?string `$name` = `null`, int `$flags` = 0): array
#[\Deprecated]
public function getClass(): ?ReflectionClass
public function getDeclaringClass(): ?ReflectionClass
public function getDeclaringFunction(): ReflectionFunctionAbstract
public function getDefaultValue(): mixed
public function getDefaultValueConstantName(): ?string
public function getName(): string
public function getPosition(): int
public function getType(): ?ReflectionType
public function hasType(): bool
#[\Deprecated]
public function isArray(): bool
#[\Deprecated]
public function isCallable(): bool
public function isDefaultValueAvailable(): bool
public function isDefaultValueConstant(): bool
public function isOptional(): bool
public function isPassedByReference(): bool
public function isPromoted(): bool
public function isVariadic(): bool
public function __toString(): string
}

## Properties

name

  Name of the parameter. Read-only, throws ReflectionException in attempt to write.

## Changelog

Version | Description
--- | ---
8.0.0 | ReflectionParameter::export() was removed.

## Table of Contents

- ReflectionParameter::allowsNull — Checks if null is allowed
- ReflectionParameter::canBePassedByValue — Returns whether this parameter can be passed by value
- ReflectionParameter::__clone — Clone
- ReflectionParameter::__construct — Construct
- ReflectionParameter::export — Exports
- ReflectionParameter::getAttributes — Gets Attributes
- ReflectionParameter::getClass — Get a ReflectionClass object for the parameter being reflected or null
- ReflectionParameter::getDeclaringClass — Gets declaring class
- ReflectionParameter::getDeclaringFunction — Gets declaring function
- ReflectionParameter::getDefaultValue — Gets default parameter value
- ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null
- ReflectionParameter::getName — Gets parameter name
- ReflectionParameter::getPosition — Gets parameter position
- ReflectionParameter::getType — Gets a parameter's type
- ReflectionParameter::hasType — Checks if parameter has a type
- ReflectionParameter::isArray — Checks if parameter expects an array
- ReflectionParameter::isCallable — Returns whether parameter MUST be callable
- ReflectionParameter::isDefaultValueAvailable — Checks if a default value is available
- ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is a constant
- ReflectionParameter::isOptional — Checks if optional
- ReflectionParameter::isPassedByReference — Checks if passed by reference
- ReflectionParameter::isPromoted — Checks if a parameter is promoted to a property
- ReflectionParameter::isVariadic — Checks if the parameter is variadic
- ReflectionParameter::__toString — To string

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open