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\Expr;
8: use PhpParser\Node\VariadicPlaceholder;
9:
10: class New_ extends CallLike
11: {
12: /** @var Node\Name|Expr|Node\Stmt\Class_ Class name */
13: public $class;
14: /** @var array<Arg|VariadicPlaceholder> Arguments */
15: public $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> $args Arguments
22: * @param array $attributes Additional attributes
23: */
24: public function __construct($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: