php guillemets ou apostrophes




Quelle est la différence entre les chaînes entre guillemets simples et entre guillemets doubles en PHP? (8)

Exemple de guillemets simples, doubles, hérédoc et 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;

?>

Je ne suis pas un expert en programmation PHP, mais je suis un peu confus pourquoi je vois du code en PHP avec une chaîne placée entre guillemets simples et parfois entre guillemets.

Je sais juste dans .NET, ou le langage C, si c'est en guillemets simples, cela signifie que c'est un caractère, pas une chaîne.


Simple cité

Le moyen le plus simple de spécifier une chaîne est de l'entourer de guillemets simples. Le guillemet simple est généralement plus rapide, et tout ce qui est cité à l'intérieur est traité en tant que guillemets simples.

Exemple:

echo 'Start with a simple string';
echo 'String\'s apostrophe';
echo 'String with a php variable'.$name;

Double cité

Utilisez des guillemets doubles en PHP pour éviter d'avoir à utiliser la période pour séparer le code (Note: Utilisez des accolades {} pour inclure des variables si vous ne voulez pas utiliser l'opérateur de concaténation ( . ) Dans une chaîne.

Exemple:

echo "Start with a simple string";
echo "String's apostrophe";
echo "String with a php variable {$name}";

Existe-t-il un devis de performance unique quote vs double quote en PHP?

Oui. Il est légèrement plus rapide d'utiliser des guillemets simples.

PHP n'utilisera pas de traitement supplémentaire pour interpréter ce qui est à l'intérieur de la citation unique. Lorsque vous utilisez des guillemets, PHP doit analyser pour voir s'il y a des variables.


En PHP, le texte de guillemets simples est considéré comme une valeur de chaîne et le texte de double guillemet analyse les variables en remplaçant et en traitant leur valeur.

$test = "variable";
echo "Hello Mr $test"; // the output would be: Hello Mr variable
echo 'Hello Mr $test'; // the output would be: Hello Mr $test

Ici, le double guillemet analyse la valeur et le guillemet simple est considéré comme valeur de chaîne (sans analyser $ variable de test.)


Les choses sont évaluées entre guillemets mais pas en un seul:

$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.

Peut-être que je suis un peu en retard, et un peu hors-sujet, mais voilà quand même ...

Vous n'avez pas à choisir en raison du contenu de votre chaîne entre:
alert("It's \"game\" time."); ou alert('It\'s "game" time.');

Au lieu de cela, vous pouvez taper comme ceci, puis utiliser des guillemets doubles ou simples, car cela n'aura aucune importance:
alert("It's “game” time."); et alert('It's “game” time.');


Une chaîne à guillemets simples ne contient pas de variables interprétées. Une chaîne entre guillemets doubles.

En outre, une chaîne entre guillemets peut contenir des apostrophes sans barres obliques inverses, tandis qu'une chaîne entre guillemets simples peut contenir des guillemets non échappés.

Les chaînes à guillemets simples sont plus rapides au moment de l'exécution car elles n'ont pas besoin d'être analysées.


Une chose:

Il est très important de noter que la ligne avec l'identifiant de fermeture de Heredoc ne doit contenir aucun autre caractère, sauf un point - virgule (;) . Cela signifie en particulier que l'identifiant ne peut pas être indenté , et qu'il n'y a pas d' espaces ou d' onglets avant ou après le point-virgule.

Exemple:

   $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