PHP 8.5.0 Beta 2 available for testing

ReflectionParameter::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::__constructConstruct

Description

public ReflectionParameter::__construct(string |array |object $function, int |string $param)

Constructs a ReflectionParameter instance.

Parameters

function

The function to reflect parameters from.

param

Either an int specifying the position of the parameter (starting with zero), or the parameter name as string .

Examples

Example #1 Using the ReflectionParameter class

<?php
function foo($a, $b, $c) { }
function
bar(Exception $a, &$b, $c) { }
function
baz(ReflectionFunction $a, $b = 1, $c = null) { }
function
abc() { }

$reflect = new ReflectionFunction('foo');

echo
$reflect;

foreach (
$reflect->getParameters() as $i => $param) {
printf(
"-- Parameter #%d: %s {\n".
" Class: %s\n".
" Allows NULL: %s\n".
" Passed to by reference: %s\n".
" Is optional?: %s\n".
"}\n",
$i, // $param->getPosition() can be used
$param->getName(),
var_export($param->getClass(), 1),
var_export($param->allowsNull(), 1),
var_export($param->isPassedByReference(), 1),
$param->isOptional() ? 'yes' : 'no'
);
}
?>

The above example will output something similar to:

Function [ <user> function foo ] {
 @@ /Users/philip/cvs/phpdoc/a 2 - 2
 - Parameters [3] {
 Parameter #0 [ <required> $a ]
 Parameter #1 [ <required> $b ]
 Parameter #2 [ <required> $c ]
 }
}
-- Parameter #0: a {
 Class: NULL
 Allows NULL: true
 Passed to by reference: false
 Is optional?: no
}
-- Parameter #1: b {
 Class: NULL
 Allows NULL: true
 Passed to by reference: false
 Is optional?: no
}
-- Parameter #2: c {
 Class: NULL
 Allows NULL: true
 Passed to by reference: false
 Is optional?: no
}

See Also

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 1 note

up
9
tracid2008 t gmail o com
13 years ago
You also can use a class instead of a function name. Just use an array like that
<?php
$reflect
= new ReflectionParameter(array('className', 'methodName'), 'property');
?>
+add a note

AltStyle によって変換されたページ (->オリジナル) /