web-dev-qa-db-fra.com

Différence entre la période et la virgule lors de la concaténation de l'écho et du retour?

Je viens de découvrir que cela fonctionnera:

echo $value , " contiue";

mais cela ne signifie pas:

return $value , " contiue";

Tandis que "." Fonctionne dans les deux.

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

54
omg

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 de langage spéciale, encapsuler la liste d'expressions entre parenthèses est illégal.

66
Gumbo

Vous devez également noter que echo en tant que construction est plus rapide avec des virgules qu'avec des points.

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

écho $ str1, $ str2, $ str3;

Environ 2,08 secondes

echo $ str1. $ str2. $ str3;

Environ 3,48 secondes

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

En effet, PHP avec des points rejoint la chaîne d'abord puis les affiche, tandis qu'avec des virgules, il suffit de les imprimer les uns après les autres.

Nous parlons de fractions, mais quand même.

Source d'origine

29
Mr.Web

les . est l'opérateur de concaténation en PHP, pour assembler deux chaînes. La virgule peut être utilisée pour plusieurs entrées en écho.

19
GSto

Point (.) sert à la concaténation d'une variable ou d'une chaîne. C'est pourquoi cela fonctionne lorsque vous faites écho lors de la concaténation de deux chaînes et cela fonctionne lorsque vous retournez une concaténation d'une chaîne dans une méthode. Mais la virgule ne concatène pas et c'est pourquoi l'instruction de retour ne fonctionnera pas.

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

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

Utilisez le point pour la concaténation

10
Patrick Desjardins

echo est une construction de langage (pas une fonction) et peut prendre plusieurs arguments, c'est pourquoi , travaux. l'utilisation de la virgule sera légèrement uniforme (mais seulement quelques nanosecondes, rien à craindre)

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

7
knittl

echo est en fait une fonction (pas vraiment mais disons que c'est pour l'argument) qui prend n'importe quel nombre de paramètres et les concaténera ensemble.

Alors que return n'est pas une fonction, mais plutôt un mot-clé, qui indique à la fonction de renvoyer la valeur et essaie d'interpréter , comme une sorte d'opérateur. Vous devez utiliser . comme opérateur de concaténation dans le cas où vous utilisez l'instruction return.

5
Kibbee