Я случайно проверил это сегодня, может кто-нибудь объяснить мне, почему это работает и что это такое?
$a = array(
array(
'download' => '1500k'
)
);
echo "Test-{$a[0]['download']}";
Выход: тест-1500к
двойные кавычки оценивают строку как выражение и извлекают переменную из нее и помещают вместо нее их значение. но строка в одинарных кавычках как есть.
если вы хотите больше деталей, вы можете увидеть этот ответь в ТАК.
Ваш код:
echo "Test-{$a[0]['download']}";
такой же как:
echo "Test-".$a[0]['download'];
{} \ просто оборачивает элемент массива $a[0]['download']
в строке, чтобы поставить его значение там
В контексте строки в двойных кавычках переменные могут быть просто вставлены по имени, но это не работает для вставки значений массива, поэтому фигурные скобки необходимы, чтобы PHP знал, что значение массива в целом должно быть вставлено в строка.
В вашем примере, если вы удалите фигурные скобки, вы увидите, что они выдают ошибку, и это потому, что PHP не может знать, что часть [0] [‘download’] не является просто строкой. Выдает ошибку преобразования массива в строку.
Вот почему необходимы фигурные скобки.