1<?php declare(strict_types=1); 2 3namespace PhpParser\Node\Expr; 4 5use PhpParser\Node; 6use PhpParser\Node\Expr; 7use PhpParser\Node\Identifier; 8 9class NullsafePropertyFetch extends Expr { 10 /** @var Expr Variable holding object */ 11 public Expr $var; 12 /** @var Identifier|Expr Property name */ 13 public Node $name; 14 15 /** 16 * Constructs a nullsafe property fetch node. 17 * 18 * @param Expr $var Variable holding object 19 * @param string|Identifier|Expr $name Property name 20 * @param array<string, mixed> $attributes Additional attributes 21 */ 22 public function __construct(Expr $var, $name, array $attributes = []) { 23 $this->attributes = $attributes; 24 $this->var = $var; 25 $this->name = \is_string($name) ? new Identifier($name) : $name; 26 } 27 28 public function getSubNodeNames(): array { 29 return ['var', 'name']; 30 } 31 32 public function getType(): string { 33 return 'Expr_NullsafePropertyFetch'; 34 } 35} 36