plugin-php icon indicating copy to clipboard operation
plugin-php copied to clipboard

Dollar sign from variable name swallowed in double quoted Strings

Open FrankNagel opened this issue 2 years ago • 1 comments

@prettier/plugin-php v0.19.4 Playground link

Input:

<?php

# simple syntax
# OK
"$foo[$index_var]";

# simple syntax with explicit name boundaries with curly brackets
# Not OK: prettier swallows the dollar sign from $index_var
"${foo[$index_var]}";

# complex (curly) syntax
# OK
"{$foo[$index_var]}";

Output:

<?php

# simple syntax
# OK
"$foo[$index_var]";

# simple syntax with explicit name boundaries with curly brackets
# Not OK: prettier swallows the dollar sign from $index_var
"${foo[index_var]}";

# complex (curly) syntax
# OK
"{$foo[$index_var]}";

In a double quoted string using the so called simple syntax with explicit variable boundaries given by curly brackets prettier swallows the dollar sign from a variable nested inside the boundaries.

FrankNagel avatar May 11 '23 14:05 FrankNagel

The "${a}" syntax is now deprecated, with a plan to remove it in future PHP versions. see: https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation

cseufert avatar May 22 '23 07:05 cseufert