Quelle est la différence entre les chaînes entre guillemets simples et doubles en PHP ?
P粉773659687
P粉773659687 2023-08-23 20:46:33
0
2
799
<p>Je ne comprends pas bien pourquoi je vois du code en PHP où les chaînes sont placées entre guillemets simples et parfois entre guillemets doubles. </p> <p>Je sais seulement qu'en .NET ou C, s'il est entre guillemets simples, cela signifie qu'il s'agit d'un caractère, pas d'une chaîne. </p>
P粉773659687
P粉773659687

répondre à tous(2)
P粉458725040

Les choses sont évaluées entre guillemets doubles, mais pas entre guillemets 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.
P粉323374878

Vous pouvez spécifier des

chaînes PHP non seulement deuxvoies, mais quatrevoies.

  1. Une simple chaîne entre guillemets affichera le contenu presque exactement "tel quel". Les variables et la plupart des séquences d'échappement ne seront pas interprétées. L'exception est que pour afficher un guillemet simple littéral, vous pouvez l'échapper avec une barre oblique inverse ' et pour afficher une barre oblique inverse, vous pouvez utiliser une autre barre oblique inverse \ code> (donc oui, même un guillemet simple Les chaînes entre guillemets seront également analysées ).
  2. Les chaînes entre guillemets doubles afficheront un grand nombre de séquences d'échappement (y compris certaines expressions régulières) et les variables de la chaîne seront évaluées. La chose importante ici est que vous pouvez utiliser des accolades pour isoler le nom de la variable que vous souhaitez évaluer . Par exemple, disons que vous avez la variable $type 并且您想要回显“The $types are”。这将查找变量$types。要解决此问题,请使用 echo "The {$type} are"$type et que vous voulez faire écho "Les $types sont". Cela recherchera la variable $types. Pour résoudre ce problème, utilisez
  3. echo "The {$type} are". Consultez
  4. String Parsing pour apprendre à utiliser les variables de tableau et plus encore. Heredoc
  5. La syntaxe des chaînes fonctionne comme une chaîne entre guillemets doubles. Cela commence par . Après l'opérateur, fournissez un identifiant puis un caractère de nouvelle ligne. Vient ensuite la chaîne elle-même, puis le même identifiant est à nouveau utilisé pour terminer la référence. Vous n'avez pas besoin d'échapper aux guillemets dans cette syntaxe. 序列进行标识,但后面的标识符用单引号括起来,例如Nowdoc (depuis PHP 5.3.0) La syntaxe des chaînes fonctionne essentiellement comme 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 est identifié en utilisant la même séquence
  6. que la documentation ici, mais l'identifiant suivant est entouré de guillemets simples, tels que
.

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 :
Aucune différence.
Veuillez lire Article de confianceUn développeur principal PHP parle de ce problème. 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 surtout 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';
}

Les chaînes citées ne sont analysées qu'une seule fois avec l'intégralité du script, puis converties en opcodes. Ensuite, il est exécuté un million de fois. Donc, il mesure tout sauf l'analyse. Ce n'est que la pointe de l'iceberg. Avec de tels nanobenchmarks, il est presque impossible de créer un test fiable qui ne soit pas gâché par certains effets secondaires perturbateurs.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal