Меня немного смущает, почему я вижу некоторый код в PHP со строкой, заключенной в одинарные, а иногда и в двойные кавычки.
Я просто знаю, что в .NET или на языке C, если это в одинарных кавычках, это означает, что это символ, а не строка.
Меня немного смущает, почему я вижу некоторый код в PHP со строкой, заключенной в одинарные, а иногда и в двойные кавычки.
Я просто знаю, что в .NET или на языке C, если это в одинарных кавычках, это означает, что это символ, а не строка.
Строки PHP могут быть указаны не только двумя способами, но в четыре пути.
\'
, а для отображения обратной косой черты вы можете избежать ее с помощью другой обратной косой черты \\
(Итак, да, даже одинарные кавычки строки анализируются).$type
, а вы что echo "The $types are"
, которая будет искать переменную $types
. Чтобы обойти это использование echo "The {$type}s are"
Вы можете поместить левую фигуру до или после знака доллара. Взгляните на синтаксический анализ строк, чтобы узнать, как использовать переменные массива и т.д.<<<
. После этого оператора предоставляется идентификатор, а затем строка новой строки. Далее следует строка, а затем тот же идентификатор, чтобы закрыть цитату. Вам не нужно скрывать кавычки в этом синтаксисе.<<<
, используемой для heredocs, но следующий идентификатор заключен в одинарные кавычки, например. <<<'EOT'
. В nowdoc не выполняется синтаксический анализ. Скорость:
Я бы не придавал слишком большого веса одиночным кавычкам быстрее, чем двойные кавычки. Вероятно, они быстрее в определенных ситуациях. Здесь статья объясняет один способ, при котором одиночные и двойные кавычки, по существу, одинаково быстрые с PHP 4.3 (Useless Optimizations
в нижней части, раздел C
). Кроме того, эта страница тестов имеет однократное сравнение двойных кавычек. Большинство сравнений одинаковы. Существует одно сравнение, где двойные кавычки медленнее одиночных кавычек.
Вещи оцениваются в двойных кавычках, но не в одном:
$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 'Start with a simple string';
echo 'String\ apostrophe';
echo 'String with a php variable'.$name;
"
Двойные кавычки Используйте двойные кавычки в PHP, чтобы избежать необходимости использовать точку для разделения кода (Примечание: используйте фигурные скобки {}
для включения переменных, если вы не хотите использовать оператор конкатенации (.
)) В строке.
Пример:
echo "Start with a simple string";
echo "String apostrophe";
echo "String with a php variable {$name}";
Да. Это немного быстрее использовать одинарные кавычки.
PHP не будет использовать дополнительную обработку для интерпретации того, что находится внутри одинарной кавычки. когда вы используете двойные кавычки, PHP должен анализировать, чтобы проверить, есть ли какие-либо переменные в строке.
Строка с одним кавычком не содержит в ней переменных. Строка с двойными кавычками.
Кроме того, строка с двумя кавычками может содержать апострофы без обратных косых черт, в то время как однокасканная строка может содержать неэксклюзивные кавычки.
Строки с одним кавычком быстрее во время выполнения, потому что их не нужно анализировать.
В PHP оба 'my name'
и "my name"
являются строками. Вы можете прочитать об этом в руководстве по PHP.
Вещь, которую вы должны знать,
$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'
В PHP люди используют одиночную кавычку для определения константной строки, например 'a'
, 'my name'
, 'abc xyz'
, при использовании двойной кавычки для определения строки, содержащей идентификатор типа "a $b $c $d"
.
Иначе говоря,
echo 'my name';
быстрее, чем
echo "my name";
но
echo 'my ' . $a;
медленнее, чем
echo "my $a";
Это верно для других, используемых в строке.
<?php
$fname = "David";
// Single quotes
echo 'My name is $fname.'; // My name is $fname.
// Double quotes
echo "My name is $fname."; // My name is David.
// Curly braces to isolate the name of the variable
echo "My name is {$fname}."; // My name is David.
// Example of heredoc
echo $foo = <<<abc
My name is {$fname}
abc;
// Example of nowdoc
echo <<< 'abc'
My name is "$name".
Now, I am printing some
abc;
?>
В PHP текст одинарной кавычки рассматривается как строковое значение, а текст двойной кавычки будет анализировать переменные, заменяя и обрабатывая их значение.
$test = "variable";
echo "Hello Mr $test"; // the output would be: Hello Mr variable
echo 'Hello Mr $test'; // the output would be: Hello Mr $test
Здесь двойная кавычка разбора значения и одинарной кавычки рассматривается как строковое значение (без разбора переменной $test.)
Оба типа замкнутых символов - это строки. Один тип цитаты удобно использовать для включения другого типа цитаты. "'"
и '"'
. Самая большая разница между типами котировок заключается в том, что вложенные ссылки идентификаторов заменяются внутри двойных кавычек, но не внутри одиночных кавычек.
Может быть, я немного опоздал и немного не по теме, но здесь все равно...
Вам не нужно выбирать из-за вашего содержимого строки между: alert("It \"game\" time.");
или alert('It\ "game" time.');
Вместо этого вы можете вводить это, а затем использовать либо двойные, либо одинарные кавычки, потому что это не имеет значения: alert("Its "game" time.");
и alert('Its "game" time.');
Одна вещь:
Очень важно отметить, что строка с закрывающим идентификатором Heredoc не должна содержать других символов, кроме точки с запятой (;). Это означает, что идентификатор может быть не отступом, и не может быть никаких пробелов или вкладок до или после точки с запятой.
Пример:
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
$name = 'test';
$singleQuote = 'This is example for single quote $name'; // here $name variable not evaluating
echo $singleQuote; // Output: This is example for single quote $name
$singleQuote = "This is example for single quote $name"; // here $name variable will evaluate and replace variable value
echo $singleQuote; // Output: This is example for single quote test
Also inside single quote expression evaluate faster campare to double quotes
Если мы используем двойные кавычки в выражении echo, он будет проверять как переменные, так и строку.
Если мы используем одинарные кавычки в выражении echo, он будет рассматривать все данные только как строку.
для получения дополнительной информации см. http://phptutorial.co.in/php-echo-print/ p >