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