48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | namespace PhpParser\Node; | ||
|  | 
 | ||
|  | use PhpParser\Error; | ||
|  | use PhpParser\NodeAbstract; | ||
|  | 
 | ||
|  | class Param extends NodeAbstract | ||
|  | { | ||
|  |     /** @var null|string|Name Typehint */ | ||
|  |     public $type; | ||
|  |     /** @var bool Whether parameter is passed by reference */ | ||
|  |     public $byRef; | ||
|  |     /** @var bool Whether this is a variadic argument */ | ||
|  |     public $variadic; | ||
|  |     /** @var string Name */ | ||
|  |     public $name; | ||
|  |     /** @var null|Expr Default value */ | ||
|  |     public $default; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Constructs a parameter node. | ||
|  |      * | ||
|  |      * @param string           $name       Name | ||
|  |      * @param null|Expr        $default    Default value | ||
|  |      * @param null|string|Name $type       Typehint | ||
|  |      * @param bool             $byRef      Whether is passed by reference | ||
|  |      * @param bool             $variadic   Whether this is a variadic argument | ||
|  |      * @param array            $attributes Additional attributes | ||
|  |      */ | ||
|  |     public function __construct($name, Expr $default = null, $type = null, $byRef = false, $variadic = false, array $attributes = array()) { | ||
|  |         parent::__construct(null, $attributes); | ||
|  |         $this->type = $type; | ||
|  |         $this->byRef = $byRef; | ||
|  |         $this->variadic = $variadic; | ||
|  |         $this->name = $name; | ||
|  |         $this->default = $default; | ||
|  | 
 | ||
|  |         if ($variadic && null !== $default) { | ||
|  |             throw new Error('Variadic parameter cannot have a default value', $default->getAttributes()); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     public function getSubNodeNames() { | ||
|  |         return array('type', 'byRef', 'variadic', 'name', 'default'); | ||
|  |     } | ||
|  | } |