simples - variable string php




¿Cuál es la diferencia entre cadenas entre comillas simples y comillas dobles en PHP? (8)

Cita única

La 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 citado

Use 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}";

¿Existe una comilla simple de beneficio en el rendimiento frente a la comilla doble en PHP?

Sí. Es un poco más rápido utilizar comillas simples.

PHP no utilizará el procesamiento adicional para interpretar lo que está dentro de la comilla simple. Cuando usa comillas dobles, PHP tiene que analizar para verificar si hay variables allí.

No soy un experto en programación PHP, pero estoy un poco confundido porque veo un código en PHP con una cadena colocada entre comillas simples y, a veces, entre comillas dobles.

Solo sé en .NET, o en el lenguaje C, si está entre comillas simples, eso significa que es un carácter, no una cadena.


Ejemplo de comillas simples, dobles, heredoc y nowdoc

<?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 un valor de cadena y el texto de comillas dobles analizará las variables al reemplazar y procesar 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í, las comillas dobles analizan el valor y las comillas simples se consideran como un valor de cadena (sin analizar la variable $ test).


En PHP, tanto 'my name' como "my name" son cadenas. Puedes leer más sobre esto en el manual de PHP .

Cosa que debes saber son

$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'

En PHP, las personas usan comillas simples para definir una cadena constante, como 'a' , 'my name' , 'abc xyz' , mientras que usan comillas dobles para definir una cadena que contiene un 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 otras cadenas usadas.


Tal vez llego un poco tarde y un poco fuera de tema, pero aquí está de todos modos ...

No tienes que elegir debido al contenido de tu cadena entre:
alert("It's \"game\" time."); o alert('It\'s "game" time.');

En su lugar, puede escribir así, y luego usar comillas dobles o simples, porque no importará:
alert("It's “game” time."); y alert('It's “game” time.');


Una cadena entre comillas simples no tiene variables dentro de ella interpretadas. Una cadena entre comillas dobles lo hace.

Además, una cadena de comillas dobles puede contener apóstrofes sin barras invertidas, mientras que una cadena de comillas simples puede contener comillas sin escaparse.

Las cadenas de comillas simples son más rápidas en tiempo de ejecución porque no necesitan ser analizadas.


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 tabulaciones antes o después del punto y coma.

Ejemplo:

   $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




syntax