Qu'est-ce qui est plus rapide en PHP, entre guillemets simples ou doubles? [dupliquer]

possibilité de dupliquer:

y a-t-il un avantage de performance entre un devis simple et un devis double en php?

qui est plus rapide, simple ou double guillemets et pourquoi?

en outre, Quel est l'avantage d'utiliser l'une ou l'autre méthode?

4
demandé sur Community 2011-02-02 08:25:49

7 réponses

ça dépend de ce que tu veux faire. J'ai juste fait quelques benchmarks et testé des assignations de chaîne de caractères Avec 5 cas de test: guillemets doubles + variable, guillemets doubles, guillemets doubles et ajout de chaîne de caractères, guillemets simples, et guillemets simples avec ajout de chaîne de caractères.

mon code de test. Un million de boucles. Assignation de ficelles.

<?php

$start = microtime(true);

$str = "";

for($i = 0; $i<1000000; $i++)
{
        $str = "hello $i";
}

$end = microtime(true);

echo $end - $start;

Résultats:

les chaînes de guillemets simples et doubles sans variables sont tout aussi rapides. (chaque écho autour de .08). La chaîne de citations simple et Double avec concaténation variable est à peu près la même, mais plus lente qu'Aucune variable. (chaque écho autour de .17-.Vingt) Les guillemets doubles avec une variable dans la chaîne étaient les plus lents (autour .20-.25)

donc simple / Double n'a pas vraiment d'importance, mais il semble que la concaténation des chaînes soit plus rapide que le remplacement des variables.

8
répondu Alexandru Petrescu 2011-02-02 05:43:38

je dirais que les guillemets simples sont plus rapides parce qu'ils ne nécessitent pas Shift ;)

les différentes citations ont des implications sur les caractères variables de sortie et d'échappement. Le contenu à l'intérieur des guillemets simples est pris comme tel, aucun caractère d'évasion et les variables sont interprétées. Les guillemets doubles interprètent des valeurs variables et échappent des caractères spéciaux comme newlines ( \n ).

24
répondu jondavidjohn 2013-04-11 15:27:31

maniez-vous des milliers de cordes par seconde? Si ce n'est pas le cas, ne vous en faites pas trop.

utilisez des guillemets doubles si vous voulez utiliser l'interpolation des chaînes de caractères (avec des variables, des mathématiques, etc.)

vous devriez aussi essayer d'être cohérent.

nous devrions oublier les petites efficacités, disons environ 97% du temps: l'optimisation prématurée est la racine de tout mal.

Donald Knuth

15
répondu alex 2011-02-02 05:55:51

Ont un look à la comparaison de la performance de la double (") et simples (') citations pour cordes @ phpbench .

Conclusion:" dans les versions actuelles de PHP, il semble que cet argument ait été satisfait des deux côtés de la ligne. Unissons-nous tous en harmonie dans celle-ci! "

4
répondu Marcin 2011-02-02 05:54:17

quant à la vitesse, le seulement bonne réponse est il ne devrait pas être votre préoccupation du tout . Période. La différence, si vous en trouvez une, n'a pas d'importance. Pour être concerné par la vitesse, on doit comprendre l'image entière, pas un pixel de celui-ci. Rendre votre application plus rapide et plus efficace est une grande tâche compliquée. Mais on ne peut pas le faire en posant des questions "lequel est le plus rapide". Si vous vraiment concernés en que, commencer par apprendre ce que profilage est.

quant aux avantages, une page de manuel explique est le meilleur endroit pour l'apprendre: http://php.net/types.string

Ce ne sont pas vraiment des avantages mais plutôt des cas d'utilisation.

2
répondu Your Common Sense 2011-02-02 06:05:53

citation simple est généralement plus rapide, et tout cité à l'Intérieur traité comme une chaîne simple,

comme

echo 'anyting else ? $something';
>> anything else? $something

PHP ne va pas utiliser de traitement supplémentaire pour interpréter ce qui est à l'intérieur de la citation simple

cependant, comparer à double devis, PHP remplacera le $something sa Valeur assignée""

$something = 'yup';
echo "anyting else ? $something";
>> anything else ? yup
1
répondu ajreal 2011-02-02 05:37:39

si aucun traitement du texte n'est requis, alors simple est plus rapide.

0
répondu HiTCHO 2011-02-02 05:27:08