Le signe n'est pas aussi "largement acceptée" comme vous pouvez l'imaginer pour la concaténation de chaînes. Il y a beaucoup de langues qui ne l'utilisez pas, tels que Perl et C, et puisque ce sont qui sont des lieux de PHP sur les racines, il fait sens pour PHP suivre. Beaucoup de langues n'ont même pas un opérateur pour elle; vous auriez à utiliser une concat()
fonction.
PHP est faiblement typé, et il en fera de conversion de type implicite lorsqu'il voit le signe plus ou un point. Cela signifie que si vous n' $x = "45 inches" + "20 inches";
, PHP va ensemble $x
de 65
. Si vous utilisez le point opérateur de concaténation, le résultat sera bien évidemment très différents. La même chose s'applique si vous avez $y = 5 . 10;
. Cela vous donnera 510
, mais de le changer pour un signe plus et vous obtenez un résultat complètement différent.
Aussi, penser logiquement, à l'opposé d'un "plus" est un moins. Mais ce n'est pas la carte si facilement à la concaténation. (J'ai vu une langue qu'il a essayé, mais il n'a pas vraiment beaucoup de sens)
Votre préférence pour le signe plus comme un concatenator est purement bas à une résistance au changement lors de l'apprentissage d'une nouvelle langue (une chose assez rare - je connais quelques personnes qui, au départ, détesté Python parce qu'il manque des accolades!)
Comme quelqu'un qui est programmé pour une longue période à l'aide d'une beaucoup de langues, je peux vous dire que je préfère de beaucoup avoir une sans ambiguïté l'opérateur de concaténation. En utilisant le même opérateur pour l'addition et la concaténation dans un faiblement typé langue est d'avoir des ennuis; en fait, je dirais que c'est l'un de Javascript plus gros défauts (et cela vient de quelqu'un qui, en général, est un fan de Javascript).
Python est fortement typé, ce qui signifie qu'il peut s'en sortir en utilisant le signe que l'ajout et l'opérateur de concaténation, car il vous oblige à travailler avec le même type; vous ne pouvez pas ajouter un entier en une chaîne de caractères en Python, si vous en avez besoin, alors vous devez explicitement convertir vos types, donc il n'y a pas d'ambiguïté, du moins pas pour le compilateur.
Il est, cependant, encore de l'ambiguïté pour le lecteur, il peut ne pas être immédiatement évident à la lecture de ce qui a été signifié par un signe plus dans le code. C'est plus facile en Python pour s'en sortir, mais personnellement, je préfère encore avoir une sans ambiguïté de l'opérateur. Mais c'est juste une question de préférence personnelle; si je travaille avec Python, Javascript, Visual Basic ou puis-je travailler à leurs règles.