Simple quotes, double quotes, ou pas du tout ? - PHP - Programmation
Marsh Posté le 06-11-2007 à 10:18:06
La différence est la suivante : avec les double-quotes, les variables sont interprétées :
Code : |
Ca va afficher :
Code :
|
Marsh Posté le 06-11-2007 à 10:18:35
Par contre :
Code :
|
Ne doit surtout jamais être utilisé, à moins que test ne soit une constante
Marsh Posté le 06-11-2007 à 10:27:02
Moi j'aime mieux les simple quotes, je crois que c'est supposément plus rapide que les double quotes ? Le fait d'ouvrir / fermer l'interpréteur toutle temps n'est pas un soucis ?
Marsh Posté le 06-11-2007 à 10:28:06
Ouais, c'est légèrement plus lent avec les double-quotes, c'est sûr, mais pas de très beaucoup.
Marsh Posté le 06-11-2007 à 10:28:16
startide a écrit : Moi j'aime mieux les simple quotes, je crois que c'est supposément plus rapide que les double quotes ? Le fait d'ouvrir / fermer l'interpréteur toutle temps n'est pas un soucis ? |
Micro-optimisation, intérêt douteux, privilégier la lisibilité.
Marsh Posté le 06-11-2007 à 10:29:34
C'est bien ce que je croyais avoir compris Merci de ta réponse ^^
sircam > oui naturellement, mais moi je lis mieux avec les simple quotes en fait, c'est l'habitude je suppose. en même temps je suis un bricoleur amateur, je fais pas du php à haut niveau loin de là ^^
Marsh Posté le 06-11-2007 à 10:39:05
startide a écrit : je suis un bricoleur amateur, je fais pas du php à haut niveau loin de là ^^ |
Le PHP, c'est par définition du bricolage.
Spoiler : troll du vendredi spotted |
Marsh Posté le 06-11-2007 à 10:42:21
Rotfl, je vais aller linker ca sur clubic histoire de rameuter dalai lama et kisscool avec les crucifix
Marsh Posté le 06-11-2007 à 10:42:46
Sircam> Moi perso, je trouve
Code : |
bien plus lisible que
Code :
|
Avec les doubles quotes, les variables sont noyées dans la chaine de caractère et donc moins visible qu'avec des simples quotes.
Marsh Posté le 06-11-2007 à 10:44:33
Ca dépend du logiciel que t'as pour coloriser, si c'est bloc note c'est clair que...
Marsh Posté le 06-11-2007 à 10:55:12
kao98 a écrit : Sircam> Moi perso, je trouve
|
Pour ça, on utilisera carrément les virgules :
Code :
|
Pas besoin de concaténation pour echo
Marsh Posté le 06-11-2007 à 10:55:33
Je pense surtout que :
Code : |
Est plus lent que :
Code :
|
En effet, le premier nécessite à PHP de créer 3 chaînes de caractères en mémoire, puis les concaténer.
Tandis que le second n'utilise qu'une seule instance de chaîne de caractères.
Bon, après ça dépend des optimisations qui sont faites dans le moteur PHP, mais d'un point de vue sémantique, pour ce cas, l'utilisation des " me semble plus performante.
Marsh Posté le 06-11-2007 à 10:57:57
MagicBuzz > intéressant ca, comme je disais suis un amateur donc je sais pas quelles mécaniques entrent en jeu derrière quand ca passe dans les mains de l'interpréteur... la virgule mentionnée par florent permet-elle de contourner cette limite ?
Marsh Posté le 06-11-2007 à 10:59:00
MagicBuzz a écrit : En effet, le premier nécessite à PHP de créer 3 chaînes de caractères en mémoire, puis les concaténer. |
Malheureusement nan. Lors du parsing, la chaîne :
Code :
|
Est transformée en :
Code :
|
cf. How long is a piece of string?
Marsh Posté le 06-11-2007 à 11:00:12
Je pense qu'elle a le même effet effectivement (mise à part que tu gère toujours 3 chaînes en mémoire, mais effectivement tu ne fais plus de concaténation)
Marsh Posté le 06-11-2007 à 11:02:05
FlorentG a écrit : |
Ouais, comme je disais, ça dépend des optimisations du moteur
Bon ben donc j'ai rien dit.
(m'enfin bon, php c'est tout pourri alors )
Moi je préfère la syntaxe barbare de C# (dérivée du printf, mais non typée) :
Code :
|
Marsh Posté le 06-11-2007 à 11:28:46
Ha ha ha, le super débat du vendredi est lancé.
Marsh Posté le 06-11-2007 à 11:42:20
Ouais mais "Le mardi c'est permi"
http://fr.answers.yahoo.com/questi [...] 734AAjsSs0
Marsh Posté le 06-11-2007 à 12:33:31
Un benchmark a été fait, je ne sais pas ce qu'il vaut.
http://www.blueshoes.org/en/developer/php_bench/
Marsh Posté le 06-11-2007 à 13:13:48
Arrêtez à présent! C'est insupportable!
Marsh Posté le 06-11-2007 à 13:43:25
cinezone a écrit : Un benchmark a été fait, je ne sais pas ce qu'il vaut. |
Laisse tomber ces conneries... Utilise xdebug (xdebug.org), et profile ton application. Et regarde ce qui rame le plus, et essaye de l'optimiser. Ca sert à rien de remplacer tous les while chelous par des foreach...
Marsh Posté le 06-11-2007 à 13:46:38
Je trouve que ces optimisation sont futile.
Combien de temps gagne t'on sur l'execution d'une page ?
0.001% du temps d'execution ?
Personnellement j'adopte la méthode qui je trouve est la plus lisible et qui permet a quelqu'un de reprendre facilement mon code sans y etre perdu. C'est a dire que je fait toujours des 'chaine'.$var.'chaine' ou des "chaine".$var."chaine" (en effet j'aime bien reservé les ' pour mon code HTML)
Perso je pense qu'il ne faut pas faire n'importe quoi, faire attention a ne pas faire de solution de porc, mais je privilegie toujours la méthode la plus propre visuellement, celle qui me fera le moins faire d'erreurs.
Marsh Posté le 06-11-2007 à 14:43:03
FlorentG a écrit : |
D'autant plus que le foreach peut se révéler beaucoup plus lent vu qu'il copie les éléments du tableau avant de les fournir.
Pour des tableaux qui contiennent des nombres ça va encore mais si le tableau contient des éléments volumineux (d'autres tableaux par exemple) ça peut tourner à la cata.
Marsh Posté le 06-11-2007 à 15:03:27
TheGuit > Euh... T'aime pas faire n'importe quoi mais... "réserver les ' pour le HTML" c'est du total n'importe quoi Puisque le ' en HTML n'existe pas, il faut obligatoirement utiliser " Pour le reste je suis d'accord. Entre garder 1ms sur tous les traîtements d'une journée et perdre 6 heures pour résoudre un bug bloquant, ou avoir un code insensiblement plus lent mais maintenable et sans surprise... y'a pas à tortiller, je choisi la seconde méthode !
Marsh Posté le 06-11-2007 à 15:22:54
omega2 a écrit : D'autant plus que le foreach peut se révéler beaucoup plus lent vu qu'il copie les éléments du tableau avant de les fournir. |
Non
Marsh Posté le 06-11-2007 à 15:32:53
Non quoi? Avec un foreach, tu ne bosses pas sur le tableau indiqué dans le foreach, c'est un fait. D'ailleurs, une fois dans la boucle du foreach, tu peux supprimer la moitié des éléments du tableau sans que ça dérange : le foreach te les donneras quand même. Ca montre bien que tout est copié avec cette instruction là.
Si tu ne me crois pas, fait l'essai.
Marsh Posté le 06-11-2007 à 15:39:20
Feels like Friday.
Marsh Posté le 06-11-2007 à 15:47:19
kao98 a écrit : Sircam> Moi perso, je trouve
Avec les doubles quotes, les variables sont noyées dans la chaine de caractère et donc moins visible qu'avec des simples quotes. |
Trouve toi un vrai éditeur de texte, le tiens est une merde
MagicBuzz a écrit : Je pense surtout que :
Est plus lent que :
En effet, le premier nécessite à PHP de créer 3 chaînes de caractères en mémoire, puis les concaténer. Bon, après ça dépend des optimisations qui sont faites dans le moteur PHP, mais d'un point de vue sémantique, pour ce cas, l'utilisation des " me semble plus performante. |
perdu
TheGuit a écrit : Je trouve que ces optimisation sont futile. Combien de temps gagne t'on sur l'execution d'une page ? 0.001% du temps d'execution ? Personnellement j'adopte la méthode qui je trouve est la plus lisible et qui permet a quelqu'un de reprendre facilement mon code sans y etre perdu. C'est a dire que je fait toujours des 'chaine'.$var.'chaine' ou des "chaine".$var."chaine" (en effet j'aime bien reservé les ' pour mon code HTML) Perso je pense qu'il ne faut pas faire n'importe quoi, faire attention a ne pas faire de solution de porc, mais je privilegie toujours la méthode la plus propre visuellement, celle qui me fera le moins faire d'erreurs. |
MagicBuzz a écrit : le ' en HTML n'existe pas, il faut obligatoirement utiliser " |
Source?
edit: non, en fait on va faire plus simple, c'est pas comme si t'avais pas l'habitude: c'est du grand n'importe quoi.
Citation : Attributes Start tags may contain attribute specifications. An attribute specification consists of a name, an "=" and a value specification. The name refers to an item in an ATTLIST declaration. The value can be a name token or an attribute value literal. A name token is one or more name characters. An attribute value literal is a string delimited by double-quotes (" ) or a string delimited by single-quotes ('). Interpretation of attribute value literals is covered in the discussion of the lexical analyzer API. |
http://www.w3.org/MarkUp/SGML/sgml-lex/sgml-lex
Marsh Posté le 06-11-2007 à 15:49:36
masklinn a écrit : |
Y'a pas de problème avec mon éditeur ! Mais il n'y a pas que mon éditeur dans la vie ! Par exemple, les balises [ code] du forum !
Marsh Posté le 06-11-2007 à 15:52:43
Les balises [ code] du forum sont "php compliant"? Je pensais qu'elles parsaient tout comme si c'était du C ou du C++.
Marsh Posté le 06-11-2007 à 15:53:52
omega2 a écrit : Les balises [ code] du forum sont "php compliant"? Je pensais qu'elles parsaient tout comme si c'était du C ou du C++. |
Non, suffit d'écrire [ code=php] et là
Code :
|
(tu remarqueras que global et echo ont un lien vers la doc PHP, et que "function" est en gras alors que c'est pas un keyword C ou C++)
Marsh Posté le 06-11-2007 à 16:06:23
masklinn a écrit :
|
ouais enfin si en fin 2007 "html" pour toi c'est toujours html4, y'a un souci.
je doute fortement que TheGuit, quand il prononce le mot "html" fasse référence à autrechose qu'à du xhtml... et si c'est le cas, le caractères ' est interdit pour les attributs, point barre.
Marsh Posté le 05-11-2007 à 22:08:33
Hello,
Je voudrai savoir quelle différence il y a entre des simples, doubles ou pas de quotes du tout.
Par exemple
Les 3 fonctionnent mais lequel est le mieux ?