Я заметил через программирование в PHP, что интерполяция строк ("blah blah ${foo}"
) работает только в двойных кавычках ("..."
).
Например, эта строка будет работать:
$bar = "foo";
echo "I like ${bar}";
>> I like foo
Но этот не будет:
$bar = "foo";
echo 'I like ${bar}';
>> I like ${bar}
Я понимаю что Руководство по PHP говорит о том факте, что интерполяция применяется только в таких строках, но не объясняет, почему она была выбрана таким образом.
Так что это мой вопрос — Зачем это то, что интерполяция строк работает только в строках с двойными кавычками в PHP?
Очевидный ответ заключается в том, что бывают ситуации, когда вы не хотите, чтобы переменные интерпретировались в ваших строках.
Взять, к примеру, следующую строку кода:
$currency = "$USD";
Это создает уведомление «неопределенная переменная» и $currency
пустая строка Определенно не то, что вы хотите.
Вы мог избежать этого ("\$USD"
), но эй, это бред.
Таким образом, PHP, как дизайнерское решение, выбрал интерполяцию строк в двойных кавычках, а строк в одинарных кавычках — нет.
Так работает по определению. Вот как это было сделано для работы. Нет «почему», кроме того, как разработчики PHP решили реализовать эту функцию.