1: <?php declare(strict_types=1);
2:
3: namespace PhpParser\Node\Expr;
4:
5: use PhpParser\Node;
6: use PhpParser\Node\Arg;
7: use PhpParser\Node\ArgPlaceholder;
8: use PhpParser\Node\Expr;
9: use PhpParser\Node\VariadicPlaceholder;
10:
11: class New_ extends CallLike {
12: /** @var Node\Name|Expr|Node\Stmt\Class_ Class name */
13: public Node $class;
14: /** @var array<Arg|VariadicPlaceholder|ArgPlaceholder> Arguments */
15: public array $args;
16:
17: /**
18: * Constructs a function call node.
19: *
20: * @param Node\Name|Expr|Node\Stmt\Class_ $class Class name (or class node for anonymous classes)
21: * @param array<Arg|VariadicPlaceholder|ArgPlaceholder> $args Arguments
22: * @param array<string, mixed> $attributes Additional attributes
23: */
24: public function __construct(Node $class, array $args = [], array $attributes = []) {
25: $this->attributes = $attributes;
26: $this->class = $class;
27: $this->args = $args;
28: }
29:
30: public function getSubNodeNames(): array {
31: return ['class', 'args'];
32: }
33:
34: public function getType(): string {
35: return 'Expr_New';
36: }
37:
38: public function getRawArgs(): array {
39: return $this->args;
40: }
41: }
42: