Skip to content

AST pretty printing does not correctly handle braces in string interpolation #22291

@TimWolla

Description

@TimWolla

Description

The following code:

<?php

try {
	$foo = 'abc';
	var_dump("{{$foo}}");
	var_dump("{$foo}");
	assert(!"{{$foo}}");
} catch (Error $e) {
	echo $e->getMessage(), PHP_EOL;
}

Resulted in this output:

string(5) "{abc}"
string(3) "abc"
assert(!"{$foo}")

But I expected this output instead:

string(5) "{abc}"
string(3) "abc"
assert(!"{{$foo}}")

PHP Version

PHP 8.6.0-dev (cli) (built: Jun 13 2026 14:01:23) (NTS DEBUG)
Copyright © The PHP Group and Contributors
Zend Engine v4.6.0-dev, Copyright © Zend by Perforce
    with Zend OPcache v8.6.0-dev, Copyright ©, by Zend by Perforce

Operating System

No response

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions