name = $name; $this->by_ref = $by_ref; $this->type = $type; $this->signature_type = $type; $this->is_optional = $is_optional; $this->is_nullable = $is_nullable; $this->is_variadic = $is_variadic; $this->location = $location; $this->type_location = $type_location; $this->signature_type_location = $type_location; $this->default_type = $default_type; } public function __toString() { return ($this->type ?: 'mixed') . ($this->is_variadic ? '...' : '') . ($this->is_optional ? '=' : ''); } public function getId() { return ($this->type ? $this->type->getId() : 'mixed') . ($this->is_variadic ? '...' : '') . ($this->is_optional ? '=' : ''); } public function __clone() { if ($this->type) { $this->type = clone $this->type; } } }