Question idiote : syntaxe echo

Résolu
Signaler
Messages postés
214
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
9 avril 2010
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
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

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
Ca s'appèle la concaténation.

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

Virgule ou point, c'est strictement identique :)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
26
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, '
';
?>
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
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+
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Bien vu pour le "bench"...

Donc :

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

* plus de 50 paramètres => mieux avec ',' (liste param)
Messages postés
214
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
9 avril 2010
4
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'
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
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() :)
Messages postés
214
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
9 avril 2010
4
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'
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
26
C'est bien ça, Chapata :-)

FhX => me concernant, tu prêches un convaincu ;-)
Messages postés
214
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
9 avril 2010
4
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
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
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 :)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
26
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 ;-)
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
42
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)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
26
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.