recherche

Maison  >  Questions et réponses  >  le corps du texte

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

<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粉773659687P粉773659687516 Il y a quelques jours852

répondre à tous(2)je répondrai

  • P粉458725040

    P粉4587250402023-08-24 13:14:41

    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.

    répondre
    0
  • P粉323374878

    P粉3233748782023-08-24 10:55:52

    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 \ (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. <<< 序列进行标识,但后面的标识符用单引号括起来,例如<<<'EOT'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
    <<<'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 :
    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.

    répondre
    0
  • Annulerrépondre