Question idiote : syntaxe echo

Résolu
cs_chapata Messages postés 214 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 9 avril 2010 - 3 janv. 2006 à 14:07
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 4 janv. 2006 à 15:57
Hello ,

petite question de syntaxe concernant les : echo


echo '<td class="',$MaClass,'">';

pouvez vous me dire pourquoi, il y a des virgules avant la variable $MaClass ?

ChaPaTa

13 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
3 janv. 2006 à 14:10
Ca s'appèle la concaténation.

http://www.phpdebutant.org/article55.php

Virgule ou point, c'est strictement identique :)
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 janv. 2006 à 14:21
Hello,

teuteuteu...

La concaténation, c'est le point, pas la virgule.
La virgule peut s'utiliser dans echo car c'est une structure de langage, au départ. Cette structure est censée afficher une ou plusieurs chaines.
Si on lui passe en paramètre plusieurs chaines, comme une fonction, il faut séparer ces paramètres par une virgule.
Ici, la différence entre le point et la virgule :
<?php
echo $var = 'Hello'.'World';
echo '
';
echo $var2 = 'Hello', 'World';
echo '
';
echo '$var => ', $var, '
';
echo '$var2 => ', $var2, '
';
?>
3
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
3 janv. 2006 à 14:33
Salut,



Je ne peux pas laisser dire une chose pareil...( désolé FhX ).



Le point = Concaténation :

echo "a"."b";

// ecrire ('a' et 'b')

// donc on construit 'ab' d'abord puis l'affiche ensuite



La virgule = lister les paramètres :

echo "a","b";

// (ecrire 'a') et (ecrire 'b')

// donc on envoi tour à tour le 'a' et le 'b' à l'affichage sans passer par une nouvelle chaine 'ab'





La différence peut parraitre fine... alors, si tu ne cours pas après
les millièmes de seconde, utilise le point. Comme ça, tu pourra
réutiliser plus facilement ce que tu as ecrit...



(echo "a"."b"; => $string = "a"."b";)

(echo "a","b"; !=> $string = "a","b";)

A+
3
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
3 janv. 2006 à 14:44
Bien vu pour le "bench"...

Donc :

* moins de 50 paramètres => mieux avec '.' (concat)

* plus de 50 paramètres => mieux avec ',' (liste param)
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_chapata Messages postés 214 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 9 avril 2010 4
3 janv. 2006 à 14:26
ok, je connais la concaténation FhX ... mais j'utilisais principalement des points.
Alors que dans une source de Coucou (plus précisément SuDoKu), il y avait les 2, alors je me suis fais plein d'idée ... lol

Je ne connaissait pas ce site, et hop ... in my favorite (avant de poser des questions idiote )

Merci FhX

ChaPaT'
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
3 janv. 2006 à 14:33
http://fr.php.net/manual/en/function.echo.php

Allez voir tout en bas de la page, un petit bench qui a été proposé entre concaténation et passage d'arguments pour un echo() :)
0
cs_chapata Messages postés 214 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 9 avril 2010 4
3 janv. 2006 à 14:34
Salut Malalam,

OK la virgule sert donc à passer plusieurs pramètre à une fonction.

mais dans mon exemple : il n'y a qu'une seule variable ...
la virgule peut donc servir dans les 2 cas , mais un point aurait été aussi bon ? c bien ça ?

ChaPaT'
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 janv. 2006 à 14:46
C'est bien ça, Chapata :-)

FhX => me concernant, tu prêches un convaincu ;-)
0
cs_chapata Messages postés 214 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 9 avril 2010 4
3 janv. 2006 à 14:47
Effectivement la concaténation prend bcp plus de tps ... dans l'exemple que tu as donné FhX pour une itération de 10 000.

mais l'exemple de Malalam est OK lui aussi, la virgule ne sert pas pour la concaténation

<?php
echo $var = 'Hello'.'World';
echo '
';
echo $var2 = 'Hello', 'World';
echo '
';
echo '$var => ', $var, '
';
echo '$var2 => ', $var2, '
'; me retourne uniquement 'Hello'
?>

Mais le jour où j'aurais besoin de courir après ces secondes ... (je serais peut-etre un Admin de CS ...) alors je valide vos réponses messieurs car j'ai toute les réponses dont j'avais besoin

Comme quoi ma question n'est pas si idiote ...
ChaPaTa
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
3 janv. 2006 à 15:48
Oui, j'ai dit un peu tout et n'importe quoi ;)

De toute facon, je n'utilise pas la , pour un echo(). J'utiliserai la virgule le jour où j'utiliserai des parenthèses pour utiliser echo() ;)

Car pour moi, la virgule s'utilise pour définir plusieurs choses et certainement pas pour coupler deux chaines.

Enfin bon, ca change pas grand chose mais bon :)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 janv. 2006 à 16:04
Si si si, lol. Débattons :
j'utilise la virgule dans echo, sauf si je veux réellement concaténer et afficher en même temps 2 chaînes (comme dans mon exemple).
Si je veux juste afficher à la suite plusieurs chaînes, j'utilise la virgule.
Cela me permet simplement - en pinaillant ;-) - de différencier dans mon code les vraies intentions de concaténation, des vraies intentions de simple affichage ;-)
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 janv. 2006 à 15:51
Salut,

Mais vous avez oublié l'essentiel !!! Kirua l'avait expliqué sur un post...



une , en php n'est pas une concaténation... c'est deux écritures
successifs... deux envois au navigateur... un . est une concatènation
puis un envoi... le . est donc plus lent...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 janv. 2006 à 15:57
Coucou => relis, ça a été dit. Quant à la vitesse, ça se discute, ça dépend des bench, et du nombre de 'passages' envoyés à echo.
0
Rejoignez-nous