Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

В чём разница между {$x} и ${x}?

#php


В php есть минимум 3 способа вставки переменной в строку:

https://ideone.com/sN22RT

$x = 'test';
echo("$x {$x} ${x}");


Выводится

test test test


То, что ${x} и {$x} (в отличие от $x) можно использовать перед буквенноцифровым символом
понятно, а чем сами эти два способа отличаются между собой?
    


Ответы

Ответ 1



Отличие в том, что {$x} - это фича именно двойных кавычек, формат обращения к переменной. А ${x} - это это переменные переменные, общий для языка синтаксис формирования имени переменной из выражения. И позволяет писать внутри фигурных скобок практически любой код на пхп: function y() {return 'x';} $x = $y = 'test'; $z = 'w'; echo ${++$z}, " ", ${trim('x')}," ", ${y()}, " ", ${'x'.''}; но вот то, что он работает в закавыченных строках тоже - echo " ${++$z} ${trim('x')} ${y()} ${'x'.''}"; это для меня сюрприз. И выглядит это несколько жутковато. Но, видимо, это результат проведенной Никитой работы по унификации языка.

Комментариев нет:

Отправить комментарий