1: <?php declare(strict_types=1);
2:
3: namespace PhpParser\Node;
4:
5: use PhpParser\NodeAbstract;
6:
7: class ArrayItem extends NodeAbstract {
8: /** @var null|Expr Key */
9: public ?Expr $key;
10: /** @var Expr Value */
11: public Expr $value;
12: /** @var bool Whether to assign by reference */
13: public bool $byRef;
14: /** @var bool Whether to unpack the argument */
15: public bool $unpack;
16:
17: /**
18: * Constructs an array item node.
19: *
20: * @param Expr $value Value
21: * @param null|Expr $key Key
22: * @param bool $byRef Whether to assign by reference
23: * @param array<string, mixed> $attributes Additional attributes
24: */
25: public function __construct(Expr $value, ?Expr $key = null, bool $byRef = false, array $attributes = [], bool $unpack = false) {
26: $this->attributes = $attributes;
27: $this->key = $key;
28: $this->value = $value;
29: $this->byRef = $byRef;
30: $this->unpack = $unpack;
31: }
32:
33: public function getSubNodeNames(): array {
34: return ['key', 'value', 'byRef', 'unpack'];
35: }
36:
37: public function getType(): string {
38: return 'ArrayItem';
39: }
40: }
41:
42: // @deprecated compatibility alias
43: class_alias(ArrayItem::class, Expr\ArrayItem::class);
44: