Возможный дубликат:
PHP: разные кавычки?
Простой вопрос:
В чем разница между "и" в php? Когда я должен использовать либо?
Возможный дубликат:
PHP: разные кавычки?
Простой вопрос:
В чем разница между "и" в php? Когда я должен использовать либо?
В принципе, строки с одним кавычком представляют собой обычный текст практически без специального случая, тогда как строки с двойными кавычками имеют переменную интерполяцию (например, echo "Hello $username";
), а также экранированные последовательности, такие как "\n" (новая строка.)
Подробнее о строках вы можете узнать в руководстве PHP.
Есть 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.
Будут проанализированы любые переменные внутри строки с кавычками. Любые переменные в цитируемой строке не будут анализироваться и будут отображаться буквально как имя переменной. По этой причине цитируемые строки очень немного быстрее для 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) будут замечены и обработаны.