1<?php declare(strict_types=1); 2 3namespace PhpParser\Node; 4 5use PhpParser\NodeAbstract; 6 7class 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 43class_alias(ArrayItem::class, Expr\ArrayItem::class); 44