9

В чем разница между строками в одинарных и двойных кавычках в PHP?

12

Я немного запутался, почему в коде на PHP строки иногда заключены в одинарные кавычки, а иногда в двойные.

Я знаю, что в .NET или языке C одинарные кавычки обозначают символ, а не строку. Почему в PHP используется два разных типа кавычек для строк? В чем разница между ними и когда следует использовать тот или иной вариант?

4 ответ(ов)

2

В PHP строковые литералы в двойных кавычках (") выполняют интерполяцию переменных, в то время как строки в одинарных кавычках (') интерпретируются как литералы. Это означает, что переменные, заключенные в двойные кавычки, будут заменены на их значения, а в одинарных кавычках они будут отображаться как есть.

Вот пример, который вы привели:

$s = "dollars";
echo 'This costs a lot of $s.'; // Вывод: This costs a lot of $s.
echo "This costs a lot of $s."; // Вывод: This costs a lot of dollars.

В первом echo, где используются одинарные кавычки, PHP не выполняет интерполяцию переменной $s, и поэтому выводится именно строка $s. Во втором случае, где используются двойные кавычки, PHP интерполирует переменную $s, и выводится её значение — dollars.

0

В строках, заключённых в одинарные кавычки, переменные не интерпретируются. В то время как в строках, заключённых в двойные кавычки, они интерпретируются.

Кроме того, в строках с двойными кавычками можно использовать апострофы без экранирования, в то время как в строках с одинарными кавычками можно использовать неэкранированные кавычки.

0

Обе категории заключённых символов представляют собой строки. Один тип кавычек удобно используется для заключения другого типа кавычек: '"' и '"'. Наиболее значительное отличие между этими типами кавычек заключается в том, что ссылки на идентификаторы, заключённые в двойные кавычки, заменяются на соответствующие значения, тогда как в одинарных кавычках этого не происходит.

0

Некоторые могут сказать, что я немного ускочил с темы, но вот это всё равно:

Вам не обязательно выбирать между содержимым строки:

echo "It's \"game\" time.";

или

echo 'It\'s "game" time.';

Если вы знакомы с использованием английских кавычек и правильным символом для апострофа, вы можете использовать как одинарные, так и двойные кавычки, поскольку это уже не будет иметь значения:

echo "It’s “game” time.";

и

echo 'It’s “game” time.';

Конечно, вы также можете добавлять переменные, если это необходимо. Но не забывайте, что они будут evaluated (evaluated — выполняться, обрабатываться) только в двойных кавычках!

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь