1<?php declare(strict_types=1); 2 3namespace PhpParser\Node; 4 5use PhpParser\Node; 6use PhpParser\NodeAbstract; 7 8class PropertyItem extends NodeAbstract { 9 /** @var Node\VarLikeIdentifier Name */ 10 public VarLikeIdentifier $name; 11 /** @var null|Node\Expr Default */ 12 public ?Expr $default; 13 14 /** 15 * Constructs a class property item node. 16 * 17 * @param string|Node\VarLikeIdentifier $name Name 18 * @param null|Node\Expr $default Default value 19 * @param array<string, mixed> $attributes Additional attributes 20 */ 21 public function __construct($name, ?Node\Expr $default = null, array $attributes = []) { 22 $this->attributes = $attributes; 23 $this->name = \is_string($name) ? new Node\VarLikeIdentifier($name) : $name; 24 $this->default = $default; 25 } 26 27 public function getSubNodeNames(): array { 28 return ['name', 'default']; 29 } 30 31 public function getType(): string { 32 return 'PropertyItem'; 33 } 34} 35 36// @deprecated compatibility alias 37class_alias(PropertyItem::class, Stmt\PropertyProperty::class); 38