PHP : simple quote - double quotes

Statut
N'est pas ouverte pour d'autres réponses.

Calvin80

Respect is key
Bonjour le monde,

petite question de chicaneurs :
On me soutient que le simple quote est plus rapide que le double quote.
Je ne le nie pas, pour une concaténation, y'a pas photo, echo "a=$a" est moins rapide que echo 'a='.$a, ok.
Mais quant est-il pour l'affichage d'un simple string?
echo "aaaaaaaaaaaaaaaaaa" est-il plus rapide que echo 'aaaaaaaaaaaaaaa' ?
On me soutient que oui, j'ai fait des tests, et je ne vois pas de différence.
QQ'un a-t-il déja fait des tests d'optimisation pour ça
De meme pour $mytabme["mykey"] et $mytable['mykey'] ?

merci !

ps: je vois deja venir ceux qui vont m répondre "pfff on gagne pratiquement pas de temps ", "le gain est ridicule", ...
Ok ils ont raison, mais là j'aimerai juste satisfaire ma curiosité ;)
 

MbK_

Etudjant
tu dis que tu as fais des test, pour voir la difference, soit il te faut un pc TRES lent qui pourrait rendre compte de la diff de temps soit que tu calcules le temps au miliemme de sec pres.

Certes, il faut optimiser son code le plus possible mais de là à tenter de faire gagner un milliemme de seconde, c'est exagéré
 
1er
OP
Calvin80

Calvin80

Respect is key
MbK_ a dit:
tu dis que tu as fais des test, pour voir la difference, soit il te faut un pc TRES lent qui pourrait rendre compte de la diff de temps soit que tu calcules le temps au miliemme de sec pres.

Certes, il faut optimiser son code le plus possible mais de là à tenter de faire gagner un milliemme de seconde, c'est exagéré
tu as tout a fait raison.
je calcul en effet le remps au millieme .
je sais que c'est exagéré.
quoique... on obtient plus de 100% de gain en passant d'un double à un simple quote lors d'une concaténation.
Dans un boucle à 1000 iterations, tu tiens la seconde.
Su un ordi flaiblard, tu tiens 10 sec

bref... oui, c'est exagéré.. n'empeche que j'aimerais avoir une preuve.
 

null

ose();
Si tu le sais c'est que tu as testé non ?

Sinon tu fais un microtime() entre toutes tes opérations et puis tu regardes les différences
 
1er
OP
Calvin80

Calvin80

Respect is key
null a dit:
Si tu le sais c'est que tu as testé non ?

Sinon tu fais un microtime() entre toutes tes opérations et puis tu regardes les différences
hou là...
je crois que je me suis mal exprimé...
on va faire ça en language de base..

test concatnation : ok - preuve faite - simple quote gagnant - convaincu
test string : ko - preuve faite - pas de gagnant - pas convaincu -> cherche preuve.
test array : ko - pas de preuve - pas convaincu -> cherche preuve.
 
1er
OP
Calvin80

Calvin80

Respect is key
MbK_ a dit:
j0k3r_n0ir a dit:
Tres interessant.

ca repond a toutes tes questions :)

ouaip ! merci !
en effet ça reponds sur le echo (pas sur le tableau, mais bon ça c'est pas grave).

Par contre... 0.01 ms sur 1000 itérations... ils aurait du ajouter le nombre d'essai, car c'est vraiment pas significatif.
Du genre une charge processeur au différente au moment du test et hop.. ta ta millisec qui saute..
en tout cas merci pour ton lien !
;)
 
1er
OP
Calvin80

Calvin80

Respect is key
je viens de lire le test en entier..
donc..ça confirme ce que je pensais: si on ne fait pas de concatenation aucune différence entre simple et dble quotes.

C'est plutot une bonne nouvelle...

merci donc pour ce lien, je sais que c'est du chipotage, mais autant que le boulot soit cohérent et bien fait ;)
 
la différence d'exécution entre le simple quote et le double quote est très simple. Elle provient simplement du fait qu'une expression entre double quote est évaluée en PHP alors qu'une entre simple quote est considérée comme une simple string. PHP est certainement optimiser pour détecter si il y a une varibale dans l'évaluation et si non, il considère le double quote comme simple quote ..

voilà en tout cas pour les string echos.

Pour ce qui est des tableaux, je pense qu'il devrait exister la même nuance, mais c'est à tester.... comme j'aip as de serveur test pour le moment, je ne peut rien dire et j'ai pas été voir au niveau syntaxe si tu pouvais placer une expression à évaluer pour un indice de tableau dans un double quote.
 
1er
OP
Calvin80

Calvin80

Respect is key
TheFornicator a dit:
la différence d'exécution entre le simple quote et le double quote est très simple. Elle provient simplement du fait qu'une expression entre double quote est évaluée en PHP alors qu'une entre simple quote est considérée comme une simple string. PHP est certainement optimiser pour détecter si il y a une varibale dans l'évaluation et si non, il considère le double quote comme simple quote ..
je suis tout a fait d'accord avec toi.. et c'est de là que venait ma question : puisqu'une expression est évaluée dans le dble quotes, perdons nous du temps quand on verifie si une expression est dans le string ?
si je fais echo "hahahahaha" y'a pas de variable, nous on le sait car on voit pas de "$", mais php doit bien un moment ou a un autre tester la chaine.
Voili voila.
Mias bon, question résolue, j'ai fait les tests sur une longue chaine, pas de différence entre les deux ;)
 
J

j0k3r_n0ir

ex membre
Tout dépend comme tu l'utilises ... mais dans les deux liens, il teste tous les deux la rapidité de echo et print.. c'est quand même le echo le plus rapide.
 

Ezekiel !

Elite
Calvin80 a dit:
Xyauh a dit:
Quant est il de la fonction print ?
(Je n'ai pas encore lu les tests)

Par contre un article intéressant

http://www.phpcs.com/code.aspx?id=24870
D'apres ce que j'ai lu (à prendre au conditonnel, faudrait refaire les tests..)
echo semble équivalent à print en terme de rapidité.

http://www.vulgarisation-informatique.com/optimiser-php.php
je suis pratiquement sur que non j'avais fait des test en affichant 10 000 fois des
bla bla
'bla'.$bla
...
et a chaque fois echo etait devant (en moyenne) mais bon la diff est vraiment minime quoi...
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut