Anonim

Les guillemets simples et les guillemets doubles sont traités un peu différemment en PHP. Lisez la suite pour voir les différences dans la façon dont ils sont évalués.

Guillemets simples

Les citations simples ont tendance à analyser les choses dans un sens beaucoup plus littéral. Par exemple, prenez ce qui suit:

$ test = "BOOOM"; echo '$ test'

Le nom de la variable, lorsqu'il est placé entre guillemets simples, n'est pas analysé à sa valeur réelle. Voici ce qui est réellement imprimé en exécutant ceci comme un simple programme php:

$ test

Je ne peux imaginer que deux scénarios dans lesquels les informations sont réellement analysées dans une seule chaîne entre guillemets. Tout d'abord, pour afficher un seul caractère entre guillemets, il doit être précédé d'une barre oblique inverse. Sinon, cela sera interprété comme la fin de votre chaîne. Deuxièmement, pour afficher une barre oblique inverse, celle-ci doit être précédée d'une autre barre oblique inverse. Exemple:

echo 'single quote: \' '; echo 'backslash: \\';

Double citation

Les guillemets doubles ont tendance à analyser les choses pour vous. Lorsqu'il est exécuté entre guillemets:

$ test = "BOOOM"; echo "$ test"

Il sort la valeur de la variable actuelle:

BOOOM

Désormais, vous rencontrerez parfois un scénario dans lequel le nom de la variable que vous essayez de générer n'est pas analysé correctement en raison de certains caractères environnants.

$ test = "BOOOM"; echo "$ testé";

Que pensez-vous obtient la sortie ici? La réponse est rien. PHP recherche une variable nommée $ testée et, comme elle n'existe pas, rien n'est affiché. La manière appropriée de sortir la valeur suivie de 'ed' serait:

$ test = "BOOOM"; echo "{$ test} ed";

En la plaçant entre accolades, cela permet à PHP de savoir où la variable commence et s’arrête, ce qui lui permet d’évaluer correctement la variable.

Différence de vitesse

J'ai effectué quelques tests d'évaluation simples pour évaluer certains scénarios de différence, la différence de vitesse entre les deux est négligeable. Les guillemets simples étaient légèrement plus rapides car ils n'avaient pas à rechercher une variable, puis à analyser la valeur, mais je n'ai jamais rencontré de scénario dans lequel la différence était suffisante. Utilisez ce qui convient à vos besoins actuels.

Différence entre guillemets simples et doubles guillemets en php