Estoy un poco confundido por qué veo algún código en PHP con cadenas entre comillas simples y, a veces, entre comillas dobles.
Solo sé en .NET, o el lenguaje C, si está entre comillas simples, eso significa que es un carácter, no una cadena.
Estoy un poco confundido por qué veo algún código en PHP con cadenas entre comillas simples y, a veces, entre comillas dobles.
Solo sé en .NET, o el lenguaje C, si está entre comillas simples, eso significa que es un carácter, no una cadena.
Respuestas:
Las cadenas PHP pueden especificarse no solo de dos maneras, sino de cuatro maneras.
\'
diagonal inversa, y para mostrar una barra diagonal inversa, puede escapar con otra barra diagonal inversa\\
( así que sí, incluso las cadenas entre comillas simples se analizan ).$type
y deseaecho "The $types are"
. Eso buscará la variable$types
. Para evitar este usoecho "The {$type}s are"
, puede colocar la llave izquierda antes o después del signo de dólar. Eche un vistazo al análisis de cadenas para ver cómo usar variables de matriz y demás.<<<
. Después de este operador, se proporciona un identificador, luego una nueva línea. La cadena en sí sigue, y luego el mismo identificador nuevamente para cerrar la cita. No necesita escapar de las comillas en esta sintaxis.<<<
secuencia utilizada para heredocs, pero el identificador que sigue está encerrado entre comillas simples, por ejemplo<<<'EOT'
. No se realiza el análisis en nowdoc.Notas: Las comillas simples dentro de comillas simples y las comillas dobles dentro de comillas dobles se deben escapar:
$string = 'He said "What\'s up?"';
$string = "He said \"What's up?\"";
Velocidad:
no pondría demasiado peso en que las comillas simples fueran más rápidas que las dobles. Probablemente son más rápidos en ciertas situaciones. Aquí hay un artículo que explica una manera en que las comillas simples y dobles son esencialmente igual de rápidas desde PHP 4.3 ( Useless Optimizations
hacia abajo, sección C
). Además, esta página de referencia tiene una comparación entre comillas simples y dobles. La mayoría de las comparaciones son iguales. Hay una comparación donde las comillas dobles son más lentas que las comillas simples.
\n
, cualquier otra cosa en mi PHP
código está entre comillas simples.
"
las comillas dobles es cosa del pasado. Las actualizaciones han aumentado el procesamiento de comillas dobles para que sea tan rápido, en todos los casos menos extremos, en estos días.
Las cosas se evalúan entre comillas dobles pero no entre comillas simples:
$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.
$mailbody = 'I want a line break:\nDone.';
mantener \n
vivo. Mientras que: $mailbody = "I want a line break:\nDone.";
analizará el salto de línea.
$testWithAsciiAndUtf8Characters = "\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!";
$simpleTest = '\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!';
secuencias de caracteres $testWithAsciiAndUtf8Characters
se transformaron en cadenas con letras reales.
'
Solo citadoLa forma más sencilla de especificar una cadena es encerrarla entre comillas simples. La comilla simple es generalmente más rápida, y todo lo que se cita dentro se trata como una cadena simple.
Ejemplo:
echo 'Start with a simple string';
echo 'String\'s apostrophe';
echo 'String with a php variable'.$name;
"
Doble citadoUse comillas dobles en PHP para evitar tener que usar el punto para separar el código (Nota: use llaves {}
para incluir variables si no desea usar el .
operador de concatenación ( )) en la cadena.
Ejemplo:
echo "Start with a simple string";
echo "String's apostrophe";
echo "String with a php variable {$name}";
Si. Es un poco más rápido usar comillas simples.
PHP no usará procesamiento adicional para interpretar lo que está dentro de la comilla simple. cuando usa comillas dobles, PHP tiene que analizar para verificar si hay alguna variable dentro de la cadena.
\'
para escapar de un apóstrofe único para usar dentro de la cadena (o \\'
para mostrar la barra invertida). Tenga en cuenta que las secuencias de escape tradicionales, como \n
NO se analizarán al carácter de nueva línea.
Una cadena entre comillas simples no tiene variables interpretadas. Una cadena con comillas dobles sí.
Además, una cadena entre comillas dobles puede contener apóstrofes sin barras invertidas, mientras que una cadena entre comillas simples puede contener comillas sin escapes.
Las cadenas entre comillas simples son más rápidas en tiempo de ejecución porque no es necesario analizarlas.
En PHP, ambos 'my name'
y "my name"
son una cadena. Puede leer más sobre esto en el manual de PHP .
Lo que debes saber son
$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'
En PHP, la gente usa comilla simple de definir una cadena constante, como 'a'
, 'my name'
, 'abc xyz'
, durante el uso de comillas dobles para definir una cadena contener identificador como "a $b $c $d"
.
Y otra cosa es,
echo 'my name';
es más rápido que
echo "my name";
pero
echo 'my ' . $a;
es más lento que
echo "my $a";
Esto es cierto para otros utilizados de cadena.
<?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;
?>
En PHP, el texto de comillas simples se considera como valor de cadena y el texto de comillas dobles analizará las variables reemplazando y procesando su valor.
$test = "variable";
echo "Hello Mr $test"; // the output would be: Hello Mr variable
echo 'Hello Mr $test'; // the output would be: Hello Mr $test
Aquí, la comilla doble analiza el valor y la comilla simple se considera como valor de cadena (sin analizar la $test
variable).
Ambos tipos de caracteres encerrados son cadenas. Un tipo de cotización se usa convenientemente para incluir el otro tipo de cotización. "'"
y '"'
. La mayor diferencia entre los tipos de comillas es que las referencias de identificador incluidas se sustituyen por comillas dobles, pero no entre comillas simples.
La diferencia entre usar comillas simples y comillas dobles en php es que si usamos comillas simples en la declaración echo, entonces se trata como una cadena. ... pero si ingresamos el nombre de la variable entre comillas dobles, generará el valor de esa variable junto con la cadena.
Aquí algunas posibilidades de comillas simples y dobles con variable
$world = "world";
"Hello '.$world.' ";
'hello ".$world."';
Una cosa:
Es muy importante tener en cuenta que la línea con el identificador de cierre de Heredoc no debe contener otros caracteres, excepto un punto y coma (;) . Eso significa especialmente que el identificador puede no estar sangrado , y puede que no haya espacios o pestañas antes o después del punto y coma.
Ejemplo:
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
Tal vez llego un poco tarde y un poco fuera de tema, pero aquí está de todos modos:
No necesariamente tiene que elegir debido al contenido de su cadena entre:
alert("It's \"game\" time.");
oalert('It\'s "game" time.');
Si está familiarizado con el uso de las comillas en inglés y el carácter correcto para el apóstrofe, puede usar comillas dobles o simples, porque ya no importará:
alert("It’s “game” time.");
yalert('It’s “game” time.');
${variablename}
.