В чем разница между «и» в PHP?

Возможный дубликат:
PHP: разные кавычки?

Простой вопрос:

В чем разница между «и» в php? Когда я должен использовать это?

Related of "В чем разница между «и» в PHP?"

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

Вы можете узнать больше о строках в руководстве PHP .

Для объявления строк используется три синтаксиса: PHP <= 5.2:

  • одинарная кавычка
  • двойное цитирование
  • Heredoc

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

переменные и 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. 

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

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

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

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

Итак, используя двойные кавычки ("), вы можете сделать:

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

который будет производить

 The count is:<tab>3 

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

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

 'John said, "Hello"' 

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

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

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