*/ class PrintNode extends Node implements NodeOutputInterface { public function __construct(AbstractExpression $expr, int $lineno, ?string $tag = null) { parent::__construct(['expr' => $expr], [], $lineno, $tag); } public function compile(Compiler $compiler): void { $compiler->addDebugInfo($this); if ($compiler->getEnvironment()->useYield()) { $compiler->write('yield '); } else { $compiler ->checkForOutput(false) ->write('echo ') ->checkForOutput(true) ; } $compiler ->subcompile($this->getNode('expr')) ->raw(";\n") ; } }