La concaténation est-elle une opération ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : La concaténation est-elle une opération ?

par Berzemus » 10 janv. 2009, 00:07

Ce serait pas un sujet pour php débutant ?

Enfin bon.. la dernière fois que j'ai entendu parler de bizarreries concernant les chaînes, c'était du c++ (pas les pointeurs, ça c'est facile).

par Calimero » 09 janv. 2009, 18:32

Dans une concaténation, PHP doit successivement évaluer le membre de gauche, puis celui de droite, et enfin évalue (et retourne) le résultat. (Puisque tu peux mixer des variables et des constantes et tutti quanti...).

Pour moi cela a tout d'une opération, ou je ne m'y connais pas :-*

par Hywan » 09 janv. 2009, 16:39

Pour bien faire la distinction pour les chercheurs (les philosophes n'ont rien à faire dans cette histoire), au sens strict :
soit deux grammaires G et H, ayant respectivement pour états initiaux X' et X'', alors la grammaire C représentant la concaténation G.H a pour unique état son état initial X, défini par la règle de production X -> X' X''. On notera que l'on obtient un automate algébrique même si on travaille dans un espace régulier (on parle d'extension de langage). Ça c'est la vraie définition ;-) (ou sinon ça veut dire que j'ai rien pigé à mon examen de décembre :D).

Ici, je parle de la concaténation comme un opérateur et c'est tout à fait juste. Ça ne remet pas la définition en cause, au contraire.

Dans la réalité, une concaténation est une opération, mais je voulais savoir pour PHP, comment lui le gère.

Re: La concaténation est-elle une opération ?

par AB » 09 janv. 2009, 16:23

...
De connaître les différentes chaînes remet la question en perspective.
Heu... je ne la vois pas bien, la perspective :-k

Sinon, je vote pour que la concaténation soit considérée comme une opération :lol: simplement parce qu'à priori, il me semblerait difficile d'argumenter le contraire. Evidemment, c'est une raison un peu légère qui me vaudrait les foudres des philosophes et chercheurs en tous genres, mais bon comme tu le dis toi-même :
PHP considère les opérateurs suivants : arithmétiques, d'assignations, sur les bits, de comparaisons, d'erreur de contrôles, d'exécutions, d'in/dé-crémentations, logiques et de types. À ça, on doit aussi ajouter l'opérateur de chaînes de caractères qui est le point pour la concaténation
Donc j'ai toujours pas compris pourquoi tu pouvais penser le contraire :-k

par Hywan » 09 janv. 2009, 16:15

Pourtant, aux niveaux des tokens, PHP fait la différence. Ça pourrait impliquer que les traitements sont différents.

Si on considère la concaténation comme une opération, ça m'arrangerait bien.

par Sékiltoyai » 09 janv. 2009, 16:06

Je ne vois pas pourquoi elle ne le serait pas. Ou plutôt, si elle ne l'était pas, je trouverais ca vraiment bizarre…

La concaténation est-elle une opération ?

par Hywan » 09 janv. 2009, 15:38

Hey :),

J'avais une question technique sur PHP. Je tente d'exposer le problème de façon compréhensible en faisant abstraction au maximum des tokens.

PHP considère les opérateurs suivants : arithmétiques, d'assignations, sur les bits, de comparaisons, d'erreur de contrôles, d'exécutions, d'in/dé-crémentations, logiques et de types. À ça, on doit aussi ajouter l'opérateur de chaînes de caractères qui est le point pour la concaténation. (On peut également ajouter les opérateurs sur les tableaux, mais c'est juste comportement déduit des opérateurs précédents).

Ma question est la suivante : est-ce que PHP considère les concaténations comme une opération ou pas ? Je pense que non. J'explique.

Dans PHP, on trouve différentes chaînes de caractères. On a les booléens qui sont des chaînes par exemple, les constantes ou encore la valeur nulle. On trouve les chaînes constantes qui sont des chaînes entourées de guillemets. Et on trouve aussi les chaînes constantes encapsulées, qui sont une suite de concaténations.
PHP fait apparemment la différence entre une chaîne concaténée et une opération, pourtant il considère le point comme un opérateur, donc comme faisant parti d'une opération.

De connaître les différentes chaînes remet la question en perspective.

Alors, qu'est-ce vous pensez au final : que la concaténation est une opération ou qu'elle ne l'est pas ?