On 08.10.2021 at 12:57, Kirill Nesmeyanov wrote:

> Yes you are right. The same thing happens if you put a function there.
> ```
> function hi(): string
> {
>     return ‘World’;
> }
>  
> echo <<<MSG
>     Hello ${hi()}
> MSG;
> // Warning: Undefined variable $World!
> ```
>  
> For some reason, I did not take this case into account.
>  
> Although it seems to me such semantics are old and require removal from the 
> language, I admit that there is code that uses it and changing the behavior 
> will break a lot. Ideally, I would like to see a similar behavior:
> ```
> echo "Hello ${ $var }"; // Hello World
> echo "Hello ${ 'Wo' . 'rld' }"; // same
> echo "Foo ${ some_foo(42) }";
> echo "Foo ${ 23 + 42 }"; 
> echo "Some ${ ClassName::method() >> 2 ?? $any }";
> // etc
> ```

See also
<https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation>.

--
Christoph M. Becker

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to