Berceker United a écrit :
Là c'est mon avis mais un éditeur n'a pas à l'interpreter puisque tu indiques que la variable est dans une chaine pourquoi la différencier bref.
|
Parce que c'est une variable interpolée dans la chaîne, pas une sous-chaîne littérale
1. Actuellement c'est correct en PHP (et pas qu'en PHP, je t'ai montré que c'était également possible en Ruby)
2. Ca peut grandement améliorer la lisibilité du code comparé à une concaténation ou une interpolation via sprintf
C'est quoi le rapport?
Les guillements, simples ou doubles, sont juste des littéraux arbitraire désignant les chaînes de caractère, en fonction du langage ils peuvent avoir des sens complètement différents
Exemple:
En Java, ' délimite un caractère unique mais " délimite une chaîne
En PHP, ' délimite une chaîne sans interpolation et sans escaping alors que " délimite une chaîne avec interpolation et escaping
En Ruby, : préfixe un symbole, ' et " délimitent tous deux des chaînes avec interpolation et escaping, / délimite un objet RE littéral, donc une chaîne sans escaping et avec des interpolations différentes et <<DELIMITER DELIMITER délimite un HEREDOC, une forme spéciale de chaîne multilignes avec interpolation et escaping
En Python, ' et " délimitent des chaînes de caractère (Python n'a pas d'interpolation littérale), """ délimite la même chaîne en multiligne, et r', r" et r""" délimitent des chaînes équivalentes sans escaping
En Haskell, ' délimite un caractère unique et " une chaîne
En Erlang, " délimite une chaîne de caractère mais ' délimite un symbole
En Javascript, ' et " sont équivalents
etc etc etc
Il n'y a pas deux langages(*) chez qui ', ", """, ... aient strictement le même sens .
1. Grave ouais, printf n'existe pas
2. Ce n'est pas parce qu'une fonctionalité n'existe pas dans certains langage qu'elle est mauvais. Java n'a pas de littéraux pour les REs, les listes et les hash, celà veut-il dire qu'avoir des littéraux pour les REs en Ruby ou en JS, avoir des littéraux pour les listes et les hash est une mauvaise chose? Python n'a pas de pattern-matching, celà signifie-t-il qu'il faut refuser d'utiliser le pattern-matching quand on fait de l'erlang? Le PHP n'a pas de fonctions anonymes (lambdas), celà veut-il dire qu'on doit refuser d'utiliser des fonctions anonymes en Ruby ou en Javascript? Le Python n'a pas de macros, celà veut-il dire qu'on ne doit pas utiliser de macros quand on fait du Lisp?
PS: * -> exagération naturellement
Message édité par masklinn le 15-10-2006 à 15:11:23
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody