xref: /PHP-Parser/lib/PhpParser/Node/Expr/Ternary.php (revision 2d3dd4e2)
1<?php declare(strict_types=1);
2
3namespace PhpParser\Node\Expr;
4
5use PhpParser\Node\Expr;
6
7class Ternary extends Expr {
8    /** @var Expr Condition */
9    public Expr $cond;
10    /** @var null|Expr Expression for true */
11    public ?Expr $if;
12    /** @var Expr Expression for false */
13    public Expr $else;
14
15    /**
16     * Constructs a ternary operator node.
17     *
18     * @param Expr $cond Condition
19     * @param null|Expr $if Expression for true
20     * @param Expr $else Expression for false
21     * @param array<string, mixed> $attributes Additional attributes
22     */
23    public function __construct(Expr $cond, ?Expr $if, Expr $else, array $attributes = []) {
24        $this->attributes = $attributes;
25        $this->cond = $cond;
26        $this->if = $if;
27        $this->else = $else;
28    }
29
30    public function getSubNodeNames(): array {
31        return ['cond', 'if', 'else'];
32    }
33
34    public function getType(): string {
35        return 'Expr_Ternary';
36    }
37}
38