Каково различие между 'и "в PHP? [дубликат]

Существует для приложений WinForms;

Application.ApplicationExit += CleanupBeforeExit;

Для Консольных приложений, попробуйте

AppDomain.CurrentDomain.DomainUnload += CleanupBeforeExit;

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

22
задан Community 23 May 2017 в 12:18
поделиться

6 ответов

По сути, строки в одинарных кавычках представляют собой простой текст без каких-либо особых случаев, тогда как строки в двойных кавычках также имеют интерполяцию переменных (например, echo "Hello $ username"; ). как экранированные последовательности, такие как "\ n" (новая строка.)

Подробнее о строках можно узнать в руководстве PHP .

19
ответ дан 29 November 2019 в 04:36
поделиться

Есть 3 синтаксиса, используемых для объявления строк , в PHP <= 5.2:

с одинарными кавычки:

переменные и escape-последовательности для специальных символов не будет расширенный

Например:

echo 'Variables do not $expand $either';

Будет выводить:

Variables do not $expand $either


С двойными кавычками:

Самая важная особенность строки в двойных кавычках - это тот факт, что имена переменных будут расширены.

Например:

$a = 10;
echo "a is $a";

Будет выводить:

a is 10


А с heredoc:

Текст Heredoc ведет себя так же, как строка в двойных кавычках, без двойные кавычки. Это означает, что котировки в heredoc не нужно быть сбежал,

Например:

$a = 10;
$b = 'hello';

$str = <<<END_STR
a is $a
and "b" is $b.
END_STR;

echo $str;

Вы получите:

a is 10
and "b" is hello.
20
ответ дан 29 November 2019 в 04:36
поделиться

Любые переменные внутри строки, заключенной в кавычки, будут проанализированы. Любые переменные в строке в кавычках не будут проанализированы и будут отображаться буквально как имя переменной. По этой причине строки в кавычках обрабатываются PHP немного быстрее.

$test = 'hello';
echo "this is a $test"; // returns this is a hello
echo 'this is a $test'; // returns this is a $test

Я бы сказал, используйте кавычки, если вам не нужны переменные внутри ваших строк.

3
ответ дан 29 November 2019 в 04:36
поделиться

Разница в том, что строки между двойными кавычками (") анализируются на предмет подстановки переменной и escape-последовательности. Строки в одинарных кавычках (') - нет.

Таким образом, при использовании двойных кавычек ( ") вы можете сделать:

$count = 3;
echo "The count is:\t$count";

, что даст

The count is:<tab>3

То же самое в одинарных кавычках вернет буквальную строку.

Также символы, которые нужно экранировать. Если у вас есть строка вроде:

'John said, "Hello"'

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

1
ответ дан 29 November 2019 в 04:36
поделиться

«интерпретирует escape-символы и переменные.» Тоже не работает.

0
ответ дан 29 November 2019 в 04:36
поделиться

Одним словом: когда вы хотите, чтобы все ваши особые символы (например, \ n ) и переменные (например, $ number ) были замечены и процесс.

0
ответ дан 29 November 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: