1<?php declare(strict_types=1);
2
3namespace PhpParser\Node\Scalar;
4
5use PhpParser\Node\Expr;
6use PhpParser\Node\InterpolatedStringPart;
7use PhpParser\Node\Scalar;
8
9class InterpolatedString extends Scalar {
10    /** @var (Expr|InterpolatedStringPart)[] list of string parts */
11    public array $parts;
12
13    /**
14     * Constructs an interpolated string node.
15     *
16     * @param (Expr|InterpolatedStringPart)[] $parts Interpolated string parts
17     * @param array<string, mixed> $attributes Additional attributes
18     */
19    public function __construct(array $parts, array $attributes = []) {
20        $this->attributes = $attributes;
21        $this->parts = $parts;
22    }
23
24    public function getSubNodeNames(): array {
25        return ['parts'];
26    }
27
28    public function getType(): string {
29        return 'Scalar_InterpolatedString';
30    }
31}
32
33// @deprecated compatibility alias
34class_alias(InterpolatedString::class, Encapsed::class);
35