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