En PHP, quelle est la différence entre les chaînes entre guillemets simples et doubles ?
P粉604507867
P粉604507867 2023-08-18 11:45:01
0
2
614
<p>Je ne comprends pas pourquoi, en PHP, certaines chaînes du code utilisent des guillemets simples et d'autres utilisent des guillemets doubles. </p> <p>Je sais seulement qu'en .NET ou C, si vous utilisez des guillemets simples, cela signifie que c'est un caractère, pas une chaîne. </p>
P粉604507867
P粉604507867

répondre à tous(2)
P粉311089279

Le contenu entre guillemets doubles sera analysé, mais le contenu entre guillemets simples ne sera pas analysé :

$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.
P粉741678385

Les

chaînes PHP peuvent être spécifiées non seulement de deuxfaçons, mais également de quatrefaçons.

  1. Les chaînes entre guillemets simples sont affichées presque exactement telles quelles. Les variables et la plupart des séquences d'échappement ne sont pas interprétées. L'exception est que pour afficher un guillemet simple, il peut être échappé avec une barre oblique inverse '进行转义,要显示一个反斜杠,可以用另一个反斜杠\ ( donc oui, même les chaînes entre guillemets simples seront analysées ).
  2. Chaînes entre guillemets affichera une série de séquences d'échappement (y compris certaines expressions régulières) et les variables de la chaîne seront évaluées. Un point important est que vous pouvez utiliser des accolades pour isoler le nom de la variable dont la valeur est requise . Par exemple, disons que vous avez une variable $type,你想要echo "The $types are"。这将查找变量$types。要解决这个问题,使用echo "The {$type}s are". Consultez String Parsing pour apprendre à utiliser les variables de tableau et plus encore.
  3. HeredocLa syntaxe des chaînes est similaire aux chaînes entre guillemets doubles. Cela commence par <<<. Après cet opérateur, fournissez un identifiant, suivi d'un caractère de nouvelle ligne. Ensuite, la chaîne elle-même et le même identifiant sont à nouveau utilisés pour fermer la référence. Dans cette syntaxe, vous n'avez pas besoin d'échapper aux guillemets.
  4. Nowdoc (depuis PHP 5.3.0) La syntaxe des chaînes est fondamentalement la même que celle des chaînes entre guillemets simples. La différence est que vous n'avez même pas besoin d'échapper aux guillemets simples ou aux barres obliques inverses. Nowdoc utilise la même séquence <<<序列来标识,但后面的标识符用单引号括起来,例如<<<'EOT' que heredoc, mais l'identifiant suivant est placé entre guillemets simples, tels que <<<'EOT'. Pas d'analyse dans Nowdoc.

Remarque : Les guillemets simples entre guillemets simples et les guillemets doubles entre guillemets doubles doivent être échappés :

$string = 'He said "What\'s up?"';
$string = "He said \"What's up?\"";

Vitesse :
Il n’y a pas de différence.
Veuillez lire un article de confiance rédigé par un développeur PHP principal. Lorsqu’il s’agit de tests, nous ne devrions jamais les prendre pour acquis. Il est important de comprendre que rédiger des tests fiables et interpréter leurs résultats nécessite beaucoup de connaissances et d’expérience. Cela signifie que la plupart des tests sont faux. Par exemple, dans un code comme celui-ci

for($i=0;$i<100000;$i++) {
    'string';
}

La chaîne citée est analysée une seule fois, avec l'intégralité du script, puis convertie en opcodes. Alors faites-le un million de fois. Par conséquent, ce qu’il mesure n’est pas une analyse. Ce n'est que la pointe de l'iceberg. Avec des nanobenchmarks comme celui-ci, il est presque impossible de créer un test fiable qui ne sera pas gâché par certains effets secondaires interférents.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!