${} string interpolation is deprecated in 8.2

Two of the four string interpolation syntaxes are deprecated, and they are the two that are ambiguous to read.

$a = ['k' => 'v'];

"$a[k]"        // fine — unquoted key inside a simple variable
"{$a['k']}"    // fine — the braced form, which is unambiguous

"${a}"         // deprecated in 8.2
"${a['k']}"    // deprecated in 8.2

// the deprecated forms also permit variable variables:
//   "${$name}"  — which is why they are ambiguous

The dollar-brace form is the one that makes a template unreadable, because ${$name} and ${name} mean entirely different things and differ by one character. Deprecating it removes a parse ambiguity rather than a feature; every use has a direct equivalent in the braced form. Anything writing shell or JavaScript inside a PHP double-quoted string hits this constantly, since both languages use the same syntax for something else.