[PHP 5.1] CLASS STRING : NOUVEL EXEMPLE SUR LA SPL

cs_depression Messages postés 100 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 13 juillet 2009 - 13 mai 2008 à 22:04
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 14 mai 2008 à 22:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46658-php-5-1-class-string-nouvel-exemple-sur-la-spl

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 mai 2008 à 22:52
Hi,

c'est très exactement la même base que la classe de Neige. Sauf que l'idée n'est pas la même; le but, si : montrer la SPL en action. L'idée, non...moi, j'avais envie de m'amuser à utiliser les fonctions de tableau de PHP (puissantes et pratiques) sur des chaînes. Ca c'est l'excuse :-) Le truc que je voulais vraiment montrer, c'est d'une part la SPL (là, c'est exactement comme la classe de Neige), et une utilisation possible de la méthode __call(). On voit la même utilisation dans certains exemples de la SPL PHP (CacheIterator par exemple).
Ce n'est pas parfait, c'est juste un exemple, c'est purement didactique. Mais je pense qu'en fouillant on peut arriver à un truc extrêmement puissant. Là ça marche déjà pas mal mais c'est du bricolage (la constante à passer pour faire un retour par référence, etc...).
Bref l'idée est juste de montrer encore une fois qu'on peut s'amuser avec la SPL... :-)
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
14 mai 2008 à 22:20
C'est propre, simple et explicite.
Effectivement ça se ressemble mais... j'aime les notations plus typées :p
malalam!!! lâche la librairie spl lâcheuuuu !!!
cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
14 mai 2008 à 22:02
Moi ça me rappele la classe de neigedhiver http://www.phpcs.com/codes/PHP5-STRING-ITERATOR_44623.aspx :-)
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
14 mai 2008 à 08:58
Bien le bonjour les p'tits fous ^^
Cette classe me rappelle quelques chose >_<
Je passerais ce soir quand j'aurais lu le code :p
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 mai 2008 à 07:59
@depression : oui...encore que, je suis persuadé que c'est pas le cas pour tout le monde...et tu l'apprends comment ? Par exemple, parce tu auras vu un commentaire du type "On incrémente notre variable : $a++;" (ou ++$a). Que ce soit dans un bouquin, la doc, un cours, un tuto, un code, et quelle que soit la forme.
Mon point de vue est qu'il n'y a jamais trop de commentaires. D'ailleurs sur ce code j'ai pas terminé, je rajouterai les suivants plus tard. les commentaires aident à suivre le cours du code.

@coucou : voui, de toute manière cette classe n'a pas pour vocation d'être une classe complète de typage. Même si le sujet est intéressant et que je ferai peut-être évoluer le bin's dans ce sens un jour. Et ça peut-être amusant de compléter celle-là voir jusqu'où on peut aller, en effet :-)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
14 mai 2008 à 02:03
je passe juste comme ca :)
rien a dire sur la classe, si ce n'est qu'elle ne s'occupe que de String, et non des types de bases, (genre les types de bases ont une representation json, ils sont serializable, on peut les passer en sql, etc...) mais c'est juste une evolution possible et pas une critique :)

sinon, j'ai vu des langages ou certains prennaient un malin plaisir a definir /* comme un operateur couple a */ (je sais plus trop comment, mais c'etait marrant)

bref, quand on voit du francais dans un code, peu importe ce qu'il y a devant, que ca soit #, ;, rem, ', ou //, on sait que c'est un commentaire...
cs_depression Messages postés 100 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 13 juillet 2009
13 mai 2008 à 23:39
Pour le ++, tu apprends très rapidement que c'est pour de l'incrémentation. T'apprends cela environ en même temps que // ou /* */ ou encore # servent à faire des commentaires.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
13 mai 2008 à 22:49
Hello,

ça s'appelle de l'emphase : j'insiste simplement sur le fait que OUI, c'est une chaîne (enfin, ça y ressemble), que OUI c'est une méthode, que NON elle n'est pas définie dans ma classe, mais que OUI je vais bien l'utiliser, cette méthode non définie, qui trie un tableau, et ce sur une chaîne.
Et ton exemple est pourtant plus utile que mon commentaire, parce que, encire faut-il savoir que ++ est un opérateur d'incrément...après tout, à qui servent les commentaires ? A ceux qui comprennent tout de suite? Naan...
cs_depression Messages postés 100 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 13 juillet 2009
13 mai 2008 à 22:04
Bon, je vais dl ta source pour bosser avec, mais une chose me fait sourire:

/**
* Use natcasesort() on our string...!
*/
$oChaine->natcasesort();

Comment dire, c'est un peu comme ceux qui écrivent:

// On incrémente $i:
$i++;

C'est pas le plus utile quoi ;)
Rejoignez-nous