Maison >développement back-end >Problème PHP >échappement de chaîne php7

échappement de chaîne php7

WBOY
WBOYoriginal
2023-05-24 16:44:38716parcourir

Dans la programmation PHP, la chaîne est l'un des types de données courants. Nous devons souvent échapper aux chaînes pour garantir que le code peut s'exécuter normalement et éviter les risques de sécurité potentiels. Comme les versions de PHP sont constamment mises à jour, l'échappement des chaînes a également subi quelques modifications. Cet article présentera l'opération d'échappement de chaîne en PHP7.

1. Caractères d'échappement

En PHP, les caractères d'échappement sont utilisés pour représenter certains caractères spéciaux, tels que les guillemets, les barres obliques inverses, les nouvelles lignes, etc. Les caractères d'échappement courants incluent :

  • ' : représente un guillemet simple
  •  : représente un guillemet double
  •  : représente une barre oblique inverse
  •  : représente un caractère de nouvelle ligne
  •  : représente un caractère de retour chariot
  •  : représente un caractère de tabulation
  • : Représente le caractère de tabulation verticale

La syntaxe d'utilisation des caractères d'échappement dans une chaîne est la suivante :

$string = 'This is a 'string'';
$string = "This is a "string"";
$string = "This is a string with a \ backslash";
$string = "This is a string
with a newline";
$string = "This is a stringwith a carriage return";
$string = "This is a string    with a tab";
$string = "This is a stringwith a vertical tab";

Notez que lorsque vous utilisez une chaîne de guillemets simples, vous ne pouvez utiliser que des guillemets simples, pas des guillemets doubles Signification. caractères. Par exemple :

$string = 'This is a "string"'; // 错误
$string = 'This is a 'string''; // 正确

Les chaînes de guillemets doubles peuvent utiliser soit des caractères d'échappement doubles, soit des caractères d'échappement simples.

Avant PHP7, afin d'éviter des problèmes d'échappement de chaîne inattendus, nous devons échapper manuellement les caractères. c'est-à-dire :

$str = '
'; // 双重转义后的字符串

Cependant, certaines modifications ont été apportées à l'échappement de chaîne en PHP7, et cette méthode de double échappement n'est plus nécessaire

2. Syntaxe d'échappement moderne

Dans En PHP7, nous pouvons utiliser la syntaxe d'échappement moderne pour gérer. échappement de chaîne. Après avoir utilisé la syntaxe d'échappement moderne, nous n'avons pas besoin de doubler manuellement les caractères d'échappement, et le code sera plus clair et plus concis. La syntaxe d'échappement moderne comprend deux types : les chaînes entre guillemets doubles et les chaînes heredoc/nowdoc.

Syntaxe d'échappement moderne pour les chaînes entre guillemets doubles
  1. Dans les chaînes entre guillemets doubles, vous pouvez utiliser des accolades pour entourer les noms de variables afin d'inclure des variables dans la chaîne. La valeur de , puisque nous utilisons des accolades {} pour l'intégration de variables, nous devons le faire. utilisez le caractère d'échappement $ devant le nom de la variable. Si nous n'utilisons pas la nouvelle syntaxe d'échappement, le code devra être doublement échappé manuellement :
$name = 'John';
$string = "Hello, {$name}!";
echo $string; // 输出:'Hello, John!'

Syntaxe d'échappement moderne pour les chaînes /nowdoc

heredoc. et les chaînes nowdoc ont été introduites dans PHP5.3. La particularité de ces deux chaînes est qu'elles peuvent contenir plusieurs lignes de texte dans la chaîne sans s'échapper. La chaîne

    heredoc commence par l'opérateur <<< identifiant :
  1. $name = 'John';
    $string = "Hello, {$name}!";
    $string = "Hello, ".$name."!";
    echo $string; // 输出:'Hello, John!'
  2. nowdoc la chaîne commence par un guillemet simple et se termine par le même guillemet simple :
$str = <<<EOD
This is
a
multi-line
string.
EOD;

En PHP7, la syntaxe d'échappement moderne peut être utilisée pour gérer les caractères d'échappement dans les chaînes heredoc/nowdoc. Voici la nouvelle syntaxe :

$str = <<<'EOD'
This is
a
multi-line
string.
EOD;
$str = <<<EOD
This is
a "multi-line" string.
EOD;
echo $str; // 输出:'This is
a "multi-line" string.'
.

Dans la syntaxe moderne, si nous devons inclure des caractères d'échappement dans une chaîne, utilisez directement les caractères d'échappement. peut nous aider à écrire un code plus clair et plus concis et à éviter le double échappement manuel. Si vous êtes un développeur PHP, il est recommandé d'utiliser une syntaxe d'échappement moderne pour améliorer la lisibilité et la maintenabilité de votre code

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn