DeclareItem.php 992 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php declare(strict_types=1);
  2. namespace PhpParser\Node;
  3. use PhpParser\Node;
  4. use PhpParser\NodeAbstract;
  5. class DeclareItem extends NodeAbstract {
  6. /** @var Node\Identifier Key */
  7. public Identifier $key;
  8. /** @var Node\Expr Value */
  9. public Expr $value;
  10. /**
  11. * Constructs a declare key=>value pair node.
  12. *
  13. * @param string|Node\Identifier $key Key
  14. * @param Node\Expr $value Value
  15. * @param array<string, mixed> $attributes Additional attributes
  16. */
  17. public function __construct($key, Node\Expr $value, array $attributes = []) {
  18. $this->attributes = $attributes;
  19. $this->key = \is_string($key) ? new Node\Identifier($key) : $key;
  20. $this->value = $value;
  21. }
  22. public function getSubNodeNames(): array {
  23. return ['key', 'value'];
  24. }
  25. public function getType(): string {
  26. return 'DeclareItem';
  27. }
  28. }
  29. // @deprecated compatibility alias
  30. class_alias(DeclareItem::class, Stmt\DeclareDeclare::class);