60 votes

Différence entre le point et la virgule lors de la concaténation avec echo et return ?

Je viens de découvrir que ça va marcher :

echo $value , " continue";

mais ce n'est pas le cas :

return $value , " continue";

Alors que . fonctionne au lieu de , dans les deux echo y return déclarations.

Quelle est la différence entre un point et une virgule ici ?

0 votes

Cette question est beaucoup trop vaste, car il peut y avoir de nombreux cas d'utilisation qui s'appliquent au même comportement.

71voto

Gumbo Points 279147

return ne permet qu'une seule expression, mais echo permet une liste d'expressions où chaque expression est séparée par une virgule.

Mais notez que puisque echo n'est pas une fonction mais une construction spéciale du langage, mettre la liste des expressions entre parenthèses est illégal.

0 votes

Bien que pas parfait, mais proche !

11 votes

Cependant, echo autorise les parenthèses s'il n'y a qu'un seul argument.

0 votes

Juan Mendes. Comment cela se passe-t-il ? Quelle est la logique ? explication alors ?

41voto

Mr.Web Points 635

Vous devez également noter que echo comme une construction est plus rapide avec les virgules qu'avec des points.

Donc si vous rejoignez un personnage 4 millions de fois, voilà ce que vous obtenez :

echo $str1, $str2, $str3;

À propos de 2.08 secondes

echo $str1 . $str2 . $str3;

À propos de 3.48 secondes

Cela prend presque la moitié du temps comme vous pouvez le voir ci-dessus.

C'est parce que le PHP avec des points joint la chaîne de caractères premièrement et les édite ensuite, alors qu'avec des virgules, on les imprime simplement l'un après l'autre.

On parle de fractions de seconde, mais quand même.

Source originale

25 votes

J'aime votre explication. C'est bizarre, je code du PHP depuis des années et je ne savais pas qu'on pouvait séparer par des virgules. J'ai toujours utilisé des points.

0 votes

@SubstanceD :D Super !

0 votes

La source, donc si quelqu'un décide d'aller plus loin dans la lecture de ceci electrictoolbox.com/php-echo-commas-vs-concatenation

20voto

GSto Points 13106

Le site . est l'opérateur de concaténation en PHP, pour mettre deux chaînes de caractères ensemble.

La virgule peut être utilisée pour des entrées multiples à echo .

0 votes

La virgule est donc un opérateur de concaténation uniquement pour l'écho ?

2 votes

À cet égard, ce n'est pas une concatination, c'est juste une 'liste' de variables ou de stings à répercuter...

1 votes

Non, la virgule crée une liste d'expressions à utiliser par echo, qui concatène la liste lorsqu'il l'imprime sur une ligne.

11voto

Patrick Desjardins Points 51478

Point ( . ) sert à concaténer une variable ou une chaîne de caractères. C'est pourquoi il fonctionne lorsque vous faites écho en concaténant deux chaînes de caractères, et il fonctionne lorsque vous renvoyez la concaténation d'une chaîne de caractères dans une méthode. Mais la virgule ne concatène pas et c'est pourquoi l'instruction return ne fonctionne pas.

echo est une construction linguistique qui peut prendre plusieurs expressions, c'est pourquoi la virgule fonctionne :

void echo ( string $arg1  [, string $...  ] )

Utilisez le point pour la concaténation.

1 votes

Mais j'utilise echo 'quelque chose', pas echo('quelque chose') ,disons, sans parenthèses.

0 votes

PHP supporte le concept de fonctions variables. Cela signifie que si le nom d'une variable est accompagné de parenthèses, PHP cherchera une fonction avec le même nom que celui de la variable, et tentera de l'exécuter. Cela peut être utilisé, entre autres, pour implémenter des callbacks, des tables de fonctions, etc.

1 votes

C'est parce que echo est un mot-clé en PHP, en plus d'être une fonction. vous pourriez l'écrire comme echo('quelque chose', 'quelque chose d'autre') et cela fonctionnerait aussi très bien.

7voto

knittl Points 64110

echo est une construction linguistique ( pas une fonction) et peut prendre plusieurs arguments, c'est pourquoi , fonctionne. l'utilisation de la virgule sera légèrement plus régulière (mais seulement quelques nanosecondes, pas d'inquiétude à avoir).

. est l'opérateur de concaténation (la colle) pour les chaînes de caractères

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X