QUOTE (debugger @ mercredi 09 janvier 2008 à 13:38:55) :
ça c'est faux
c'est naturel (et logique) de faire ça quand on veut modifier la valeur d'une variable sans changer sa nature
ex : si on veut transformer du texte tout en majuscules, on va pas le mettre dans une nouvelle variable... toi si ? ben pas moi car justement je trouve plus lisible d'avoir 1 variable qui a subit N transformations que N variables qui ont subit 1 transformation, surtout si c'est le résultat qui m'intéresse et pas les étapes
une autre raison (même si avec les machines d'aujourd'hui on s'en fout) c'est que plus on crée de variables, plus ça consomme des ressources cpu / mémoire, je préfère de loin être pinailleur sur des préoccupations de ce type !
Je veux bien que ça le soit en php, tout simplement parce c'est un langage procédural, et que les types ne sont pas des objets (en plus d'avoir un parseur des plus intolérant), mais il est indéniable que cela nuit à la lisibilité (encore une fois l'effet est accentué étant donné que php n'a pas d'ordre de paramètres fixes).
(D'ailleurs, si le résultat est encapsulé dans une fonction/methode et retourné explicitement, un GC correctement ficellé se débarassera des réferences intermediaires.)
Mais c'est censé ressembler à ça, ensuite dans une classe couplé avec une fluent interface ( quoique, je suis même pas sur que ça soit possible en l'occurence ) on gagne en lisibilité et en clustering.
CODE :
function parseURLTags ($input) {
return preg_replace('#\[url\]\s*(http://)?([^\[\s]*)\s*\[/url\]#si','<a href="http://\\2">\\2</a>',$input);
}
Message édité par Shinuza le mercredi 09 janvier 2008 à 17:38:21