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