PHP : simple quote - double quotes

Discussion dans 'Web, design' créé par Calvin80, 2 Mars 2005.

Statut de la discussion:
Fermée.
  1. Offline
    Calvin80 Elite
    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é ;)
    Calvin80, 2 Mars 2005
    #1
  2. Offline
    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é
    MbK_, 2 Mars 2005
    #2
  3. Offline
    Calvin80 Elite
    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.
    Calvin80, 2 Mars 2005
    #3
  4. Offline
    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
    null, 2 Mars 2005
    #4
  5. Offline
    Calvin80 Elite
    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.
    Calvin80, 2 Mars 2005
    #5
  6. Offline
    j0k3r_n0ir ex membre
    j0k3r_n0ir, 2 Mars 2005
    #6
  7. Offline
    MbK_ Etudjant
    MbK_, 2 Mars 2005
    #7
  8. Offline
    null ose();
    null, 2 Mars 2005
    #8
  9. Offline
    Calvin80 Elite

    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 !
    ;)
    Calvin80, 2 Mars 2005
    #9
  10. Offline
    Calvin80 Elite
    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 ;)
    Calvin80, 2 Mars 2005
    #10
  11. Offline
    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.
    TheFornicator, 2 Mars 2005
    #11
  12. Offline
    Calvin80 Elite
    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 ;)
    Calvin80, 3 Mars 2005
    #12
  13. Offline
    Xou I ♥ rien
    Xou, 3 Mars 2005
    #13
  14. Offline
    Calvin80 Elite
    Calvin80, 3 Mars 2005
    #14
  15. Offline
    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.
    j0k3r_n0ir, 3 Mars 2005
    #15
  16. Offline
    Ezekiel ! Elite
    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...
    Ezekiel !, 3 Mars 2005
    #16
Statut de la discussion:
Fermée.