2018-11-23 12:29:20 +00:00
< ? php declare ( strict_types = 1 );
namespace PhpParser\Node ;
use PhpParser\NodeAbstract ;
class Param extends NodeAbstract
{
2019-01-24 08:00:03 +00:00
/** @var null|Identifier|Name|NullableType Type declaration */
2018-11-23 12:29:20 +00:00
public $type ;
/** @var bool Whether parameter is passed by reference */
public $byRef ;
/** @var bool Whether this is a variadic argument */
public $variadic ;
/** @var Expr\Variable|Expr\Error Parameter variable */
public $var ;
/** @var null|Expr Default value */
public $default ;
/**
* Constructs a parameter node .
*
2019-01-24 08:00:03 +00:00
* @ param Expr\Variable | Expr\Error $var Parameter variable
* @ param null | Expr $default Default value
* @ param null | string | Identifier | Name | NullableType $type Type declaration
* @ param bool $byRef Whether is passed by reference
* @ param bool $variadic Whether this is a variadic argument
* @ param array $attributes Additional attributes
2018-11-23 12:29:20 +00:00
*/
public function __construct (
$var , Expr $default = null , $type = null ,
bool $byRef = false , bool $variadic = false , array $attributes = []
) {
parent :: __construct ( $attributes );
$this -> type = \is_string ( $type ) ? new Identifier ( $type ) : $type ;
$this -> byRef = $byRef ;
$this -> variadic = $variadic ;
$this -> var = $var ;
$this -> default = $default ;
}
public function getSubNodeNames () : array {
return [ 'type' , 'byRef' , 'variadic' , 'var' , 'default' ];
}
2019-01-24 08:00:03 +00:00
2018-11-23 12:29:20 +00:00
public function getType () : string {
return 'Param' ;
}
}