03/08/2006 @ 19:31:34: gizmo: [PHP] Comment ne pas marcher dedans...
Bon, je propose de rassembler ici toutes les pire merdes issues du moteur PHP, parce que bon, y en a des tas, mais si on sait construire une petite base de connaissance, cela permettra d'éviter de toujours marcher dedans (il parait que cela porte bonheur
)
Alors, j'ouvre le bal avec PHP 5.0.4
Et en sorties, on a un magnifique
AVANT
array(3) {
[0]=>
array(1) {
[0]=>
string(17) "TEXTE A CAPTURER "
}
["super"]=>
array(1) {
[0]=>
string(17) "TEXTE A CAPTURER "
}
[1]=>
array(1) {
[0]=>
string(17) "TEXTE A CAPTURER "
}
}
APRES
array(2) {
[0]=>
string(17) "TEXTE A CAPTURER "
[1]=>
string(17) "TEXTE A CAPTURER "
}
Magnifique n'est-ce pas?
03/08/2006 @ 19:39:17: zion: [PHP] Comment ne pas marcher dedans...
Ca me donne mal au crâne
03/08/2006 @ 20:37:39: max: [PHP] Comment ne pas marcher dedans...
Hmmmm, si tu pouvais détailler, car j'ai l'impression que ça fait ce qui dit le mode d'emplois
Il doit y avoir un truc qui m'échappe (je ne suis pas ironique là, je précise).
04/08/2006 @ 01:27:53: gizmo: [PHP] Comment ne pas marcher dedans...
Si ça faisait ce que dit le mode d'emploi, j'aurais aussi ma clef "super" passée dans ma version avec callback.
04/08/2006 @ 11:34:24: zion: [PHP] Comment ne pas marcher dedans...
En relisant ce matin, j'ai enfin pigé
Joli
04/08/2006 @ 18:55:04: max: [PHP] Comment ne pas marcher dedans...
Joli dans un sens, qui va voir dans les sources pour voir si c'est "normal" ou pas
Si la variable super est créé avant ou après le traitement dans le cas de preg_match_all ? Vu que preg_replace_callback ne renvoie pas l'ensemble des matches dans un tableau en fin de fonction, on pourrait trouver ça normal, mais si tu veux faire quelques choses pendant le preg_replace_callback sur chaque résultat et en même temps recevoir la chaine de charactère transformé, je comprends que tu sois déçu. Il faudra voir ce qu'il existe comme littérature sur l'usage des callbacks.
Sinon, tu as trouvé ce erreur/bug/curiosité de quelle manière ?
Max, qui aime bien apprendre
ps: joli aussi le parseur syntaxique d'informaticien, je viens de réaliser que chaque fonction à son lien vers la doc PHP :clap:
04/08/2006 @ 19:14:28: gizmo: [PHP] Comment ne pas marcher dedans...
J'ai trouvé ce bug en créant mon moteur de template. Comme il est possible que je rajoute des fonctionnalités par la suite, je n'avais pas envie de devoir recompter mes parenthèses de regexp dans tout mon code à chaque modif. Mais bon, visiblement c'est trop évolué pour php.
04/08/2006 @ 19:48:14: zion: [PHP] Comment ne pas marcher dedans...
ps: joli aussi le parseur syntaxique d'informaticien, je viens de réaliser que chaque fonction à son lien vers la doc PHP :clap:
merci
Y a le même pour pleins de languages, je me demande si j'envoie pas sur allhtml pour l'HTML d'ailleurs
Enfin ca évite les copier/coller à gogo
05/08/2006 @ 13:45:00: ovh: [PHP] Comment ne pas marcher dedans...
ps: joli aussi le parseur syntaxique d'informaticien, je viens de réaliser que chaque fonction à son lien vers la doc PHP :clap:
P'tain j'avais jamais remarqué
C'est super en effet
05/09/2006 @ 20:27:00: gizmo: [PHP] Comment ne pas marcher dedans...
Bon, encore une incohérence de merde dans PHP
Output:
bla
hello
Résultat des courses: Ces imbéciles se sont tellement chiés dessus qu'il est impossible de travailler sur des copies de variables membres d'un objet. Super pratique lorsque l'on veut rendre un objet immuable de manière élégante
EDIT: Bon, alors, le fait est que ces imbéciles ont mis un setter par défaut, php4 staïle
Du coup, en rajoutant la méthode
On règle le problème. C'est évidemment super pratique pour débugger s'il instancie des nouvelles variables à chaque faute de frappe, même dans les objets
10/09/2006 @ 14:55:51: gizmo: [PHP] Comment ne pas marcher dedans...
Bon, alors, dans la catégorie "Je suis incapable de passer des arguments correctement à une fonction", j'appelle PHP!
Petite démonstration par l'exemple:
Et en sortie, on obtient:
toto
Hello "goodCase"!
Donc, en cas d'appel à une fonction implicite, PHP est incapable d'évaluer D'ABORD cette fonction avant de passer le résultat comme argument et, au lieu de faire un passage par référence pour économiser de la place mémoire et éviter une évaluation inutile, il se content de copier une valeur NULL, ce con.
Et dire que cette merde est acclamée par les foules...
10/09/2006 @ 22:40:00: zion: [PHP] Comment ne pas marcher dedans...
10/09/2006 @ 22:55:39: gizmo: [PHP] Comment ne pas marcher dedans...
Non. Avec les conneries qu'ils sont en train de planifier pour la v6, je me dis que si je viens avec mes questions sur des fonctionnalités qu'à peine 0.5% des progammeurs php utilisent (genre tout ce qui sert à coder un rien proprement), il vont juste m'envoyer chier ou, pire, retirer la fonctionnalité.
10/09/2006 @ 23:32:20: zion: [PHP] Comment ne pas marcher dedans...
C'est vrai qu'à l'époque, je les avais contacté pour leur demander d'inclure le "with" de Delphi... Ils m'ont envoyé chier sur la lune
16/09/2006 @ 01:26:09: philfr: [PHP] Comment ne pas marcher dedans...
Et dire que cette merde est acclamée par les foules...
De toutes façons, c'est de ta faute... C'est Rasmus Lerdorf, le créateur de PHP lui-même qui le dit
...
http://www.internetnews.com/dev-news/article.php/3631831
Ah, oui, il dit aussi que MySQL c'est bien, et PostgreSQL, c'est nul (enfin, en gros)...
17/09/2006 @ 01:07:25: gizmo: [PHP] Comment ne pas marcher dedans...
Euh, ouais. Enfin, c'est vraiment pas un mec que je considère comme une lumière, donc bon...
17/09/2006 @ 23:04:17: zion: [PHP] Comment ne pas marcher dedans...
Mais il est gentil, déjà vu à une conférence
Il a été important pour php1/2... Après bon il est plus vraiment de la partie
17/09/2006 @ 23:49:47: philfr: [PHP] Comment ne pas marcher dedans...
T'étais au OSDEM à la plaine ?
Je l'y ai vu aussi, où il avouait la façon dont il "développait" les premiers balbutiements de PHP1...
18/09/2006 @ 00:02:18: zion: [PHP] Comment ne pas marcher dedans...
Oui, j'y étais, j'ai encore le tshirt monsieur
J'ai fait l'OSDEM et tous les FOSDEM
(même le dernier mais j'y ai pas vu grand chose, trop malade).
Tu te rappelles donc de son explication sur le "crouic" du disque pour son while?
Ca situe quand même
18/09/2006 @ 11:51:01: Altar: [PHP] Comment ne pas marcher dedans...
C'est quoi le crouic
On veut savoir