if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
Ben non : Invalid argument supplied for foreach().
Fonctionne normalement avec ma condition inutile.
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
Ben non : Invalid argument supplied for foreach().
Fonctionne normalement avec ma condition inutile.
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
Ben non : Invalid argument supplied for foreach().
Fonctionne normalement avec ma condition inutile.
Le 06/11/2009 19:43, Olivier Masson a écrit :if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
Ben non : Invalid argument supplied for foreach().
Ah ? Avec un tableau vide, vraiment ? Ou avec une valeur nulle ?
Fonctionne normalement avec ma condition inutile.
Peut-être parce que count(null) retourne 0, en revanche si j'en crois la
doc count(0) et count("") retournent 1.
Le 06/11/2009 19:43, Olivier Masson a écrit :
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
Ben non : Invalid argument supplied for foreach().
Ah ? Avec un tableau vide, vraiment ? Ou avec une valeur nulle ?
Fonctionne normalement avec ma condition inutile.
Peut-être parce que count(null) retourne 0, en revanche si j'en crois la
doc count(0) et count("") retournent 1.
Le 06/11/2009 19:43, Olivier Masson a écrit :if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
Ben non : Invalid argument supplied for foreach().
Ah ? Avec un tableau vide, vraiment ? Ou avec une valeur nulle ?
Fonctionne normalement avec ma condition inutile.
Peut-être parce que count(null) retourne 0, en revanche si j'en crois la
doc count(0) et count("") retournent 1.
Ah ? Avec un tableau vide, vraiment ? Ou avec une valeur nulle ?
Je pensais qu'en indiquant $del=array() dans la déclaration des
arguments (je sais pas si on dit ainsi), c'était ok mais non.
Ah ? Avec un tableau vide, vraiment ? Ou avec une valeur nulle ?
Je pensais qu'en indiquant $del=array() dans la déclaration des
arguments (je sais pas si on dit ainsi), c'était ok mais non.
Ah ? Avec un tableau vide, vraiment ? Ou avec une valeur nulle ?
Je pensais qu'en indiquant $del=array() dans la déclaration des
arguments (je sais pas si on dit ainsi), c'était ok mais non.
Bonjour,
Je suis d'accord avec certaines de tes remarques, mais pas avec
d'autres.
Le 06/11/2009 16:41, Bruno Desthuilliers répondait à Olivier Masson :function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'as pas déclaré ni initialisé $output avant.
Pas d'accord : c'est la fonction parse_str() qui initialise la valeur
(il n'y a pas de cas où la fonction puisse laisser cette valeur non
initialisée). Ta remarque me fait penser au genre de code suivant que
l'on voit quelquefois :
$variable = 0; // initialisation
$variable = ... résultat d'un calcul ...
Quant à déclarer sans initialiser... ben c'est du PHP, hein !
2/ et si je veux travailler sur une autre url ? (ou, plus exactement, la
querystring d'une autre url).
Ben ça, je suppose que le besoin ne s'en fait pas sentir dans ce code
(mais seul Olivier Masson pourrait le dire).if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
Oui, entièrement d'accord.foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
Oui, mais là tu chipotes.
Les noms des clés sont aussi des valeurs...
mais oui, ok, j'ai vu le souriard.if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
D'accord et pas d'accord.
Je serais d'accord s'il l'avait écrit sur deux lignes :
if (isset($output[$value]))
unset($output[$value]);
Mais à mon sens il n'y a pas de danger quand c'est sur une seule ligne :
if (isset($output[$value])) unset($output[$value]);le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...
Pour ma part, j'ajoute les accolades au moment de mettre ce code sur
deux lignes pour y ajouter l'instruction supplémentaire. Pas de risque
de se tromper.
$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec array_merge,
tu aura un remplacement pur et simple.
Voui, m'enfin bon, avec l'ancien code les paramètres multivalués
n'étaient pas gérés non plus vu que tu ne pouvais pas dire quelle valeur
tu voulais remplacer : on peut donc supposer que ce cas n'est pas censé
se produire.
Cela dit, ajouter un commentaire pour expliquer les limitations pourrait
être utile.
return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
L'ancien code prenait une URL complète et renvoyait une URL complète, le
nouveau prend une query string
et renvoie une query string : ça me
semble cohérent.
Le reste du traitement sera fait en dehors de cette
fonction, forcément.
Bonjour,
Je suis d'accord avec certaines de tes remarques, mais pas avec
d'autres.
Le 06/11/2009 16:41, Bruno Desthuilliers répondait à Olivier Masson :
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'as pas déclaré ni initialisé $output avant.
Pas d'accord : c'est la fonction parse_str() qui initialise la valeur
(il n'y a pas de cas où la fonction puisse laisser cette valeur non
initialisée). Ta remarque me fait penser au genre de code suivant que
l'on voit quelquefois :
$variable = 0; // initialisation
$variable = ... résultat d'un calcul ...
Quant à déclarer sans initialiser... ben c'est du PHP, hein !
2/ et si je veux travailler sur une autre url ? (ou, plus exactement, la
querystring d'une autre url).
Ben ça, je suppose que le besoin ne s'en fait pas sentir dans ce code
(mais seul Olivier Masson pourrait le dire).
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
Oui, entièrement d'accord.
foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
Oui, mais là tu chipotes.
Les noms des clés sont aussi des valeurs...
mais oui, ok, j'ai vu le souriard.
if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
D'accord et pas d'accord.
Je serais d'accord s'il l'avait écrit sur deux lignes :
if (isset($output[$value]))
unset($output[$value]);
Mais à mon sens il n'y a pas de danger quand c'est sur une seule ligne :
if (isset($output[$value])) unset($output[$value]);
le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...
Pour ma part, j'ajoute les accolades au moment de mettre ce code sur
deux lignes pour y ajouter l'instruction supplémentaire. Pas de risque
de se tromper.
$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec array_merge,
tu aura un remplacement pur et simple.
Voui, m'enfin bon, avec l'ancien code les paramètres multivalués
n'étaient pas gérés non plus vu que tu ne pouvais pas dire quelle valeur
tu voulais remplacer : on peut donc supposer que ce cas n'est pas censé
se produire.
Cela dit, ajouter un commentaire pour expliquer les limitations pourrait
être utile.
return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
L'ancien code prenait une URL complète et renvoyait une URL complète, le
nouveau prend une query string
et renvoie une query string : ça me
semble cohérent.
Le reste du traitement sera fait en dehors de cette
fonction, forcément.
Bonjour,
Je suis d'accord avec certaines de tes remarques, mais pas avec
d'autres.
Le 06/11/2009 16:41, Bruno Desthuilliers répondait à Olivier Masson :function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'as pas déclaré ni initialisé $output avant.
Pas d'accord : c'est la fonction parse_str() qui initialise la valeur
(il n'y a pas de cas où la fonction puisse laisser cette valeur non
initialisée). Ta remarque me fait penser au genre de code suivant que
l'on voit quelquefois :
$variable = 0; // initialisation
$variable = ... résultat d'un calcul ...
Quant à déclarer sans initialiser... ben c'est du PHP, hein !
2/ et si je veux travailler sur une autre url ? (ou, plus exactement, la
querystring d'une autre url).
Ben ça, je suppose que le besoin ne s'en fait pas sentir dans ce code
(mais seul Olivier Masson pourrait le dire).if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes façons
pas exécutée. Donc le test est inutile.
Oui, entièrement d'accord.foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
Oui, mais là tu chipotes.
Les noms des clés sont aussi des valeurs...
mais oui, ok, j'ai vu le souriard.if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
D'accord et pas d'accord.
Je serais d'accord s'il l'avait écrit sur deux lignes :
if (isset($output[$value]))
unset($output[$value]);
Mais à mon sens il n'y a pas de danger quand c'est sur une seule ligne :
if (isset($output[$value])) unset($output[$value]);le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...
Pour ma part, j'ajoute les accolades au moment de mettre ce code sur
deux lignes pour y ajouter l'instruction supplémentaire. Pas de risque
de se tromper.
$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec array_merge,
tu aura un remplacement pur et simple.
Voui, m'enfin bon, avec l'ancien code les paramètres multivalués
n'étaient pas gérés non plus vu que tu ne pouvais pas dire quelle valeur
tu voulais remplacer : on peut donc supposer que ce cas n'est pas censé
se produire.
Cela dit, ajouter un commentaire pour expliquer les limitations pourrait
être utile.
return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
L'ancien code prenait une URL complète et renvoyait une URL complète, le
nouveau prend une query string
et renvoie une query string : ça me
semble cohérent.
Le reste du traitement sera fait en dehors de cette
fonction, forcément.
Bruno Desthuilliers a écrit :En PHP, c'est d'un intérêt limité (j'ai pas dit "inutile", hein...).
Ca a plus de sens dans un langage objet (un vrai, je veux dire), et -
en matière de développement web, avec un modèle d'exécution basé sur
un long running process.
Pourtant PHP5 est censé être pas mal objet non (et le 6 carrément donc) ?
Je doute que ce soit inutile tout de même (oui, tu l'as pas dit, ok.)
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'a pas déclaré ni initialisé $output avant.
exact mais ça l'est en fait.
2/ et si je veux travailler sur une autre url ? (ou, plus exactement,
la querystring d'une autre url).
Ben je veux pas :)
Comme je l'ai dit, c'est adapté à mon contexte.
Et j'en profite pour indiquer un argument qui ne me convainc pas dans la
POO : c'est extensible, réutilisable...
Super ! Mais qd j'ai :
1/ des délais à tenir,
2/ des fonctions qui ne me serviront plus ou qui ne me serviront jamais
autrement,
je ne vois nullement l'intérêt de perdre du temps à rendre tout
parfaitement adaptable à tout contexte
(c'est aussi valable pour du dev
non objet d'ailleurs.)
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes
façons pas exécutée. Donc le test est inutile.
Ben non : Invalid argument supplied for foreach().
Fonctionne normalement avec ma condition inutile.
foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
C'est vrai que ça fait couillon et peut nuire à la compréhension... mais
c'est comme ça (je vais qd même pas faire un flip juste pour pouvoir
lire les key !).
if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
Je ne vois pas en quoi c'est incomplet.
A mon avis, question de style.
En tout cas, je fais toujours comme ça quand je sais qu'il n'y aura rien
de plus après la condition.
JE SAIS que ça peut ne pas plaire, mais les accolades de partout, ça me
gonfle et je ne trouve pas ça DU TOUT plus lisible.
A l'inverse, les
($a==='prout')?'do_this':(($b==='crotte')?'youpi':'piyou'))
ça m'insupporte.
Il y a aussi une question de gout. Y'en a qui mettent des switch dès la
moindre condition, y'en a (y'en a ?) qui aiment les endif, etc.
le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...
}$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec
array_merge, tu aura un remplacement pur et simple.
Alors ça, c'est une TRES BONNE remarque même si dans ce que tu cites ça
ne pose nullement problème.
En effet, des index sont ajoutés aux queries (si j'ai
?nom[]=bob&nom[]=tom, j'obtiens ?nom[0]=bob&nom[1]=tom).
Mais ça coince pour le del car le unset n'est plus bon.return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
Ah ouais ça change tout et puis c'est balèze de reconstruire une url !
:)
(et en fait, c'est fait dans mes fonctions)
Bruno Desthuilliers a écrit :
En PHP, c'est d'un intérêt limité (j'ai pas dit "inutile", hein...).
Ca a plus de sens dans un langage objet (un vrai, je veux dire), et -
en matière de développement web, avec un modèle d'exécution basé sur
un long running process.
Pourtant PHP5 est censé être pas mal objet non (et le 6 carrément donc) ?
Je doute que ce soit inutile tout de même (oui, tu l'as pas dit, ok.)
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'a pas déclaré ni initialisé $output avant.
exact mais ça l'est en fait.
2/ et si je veux travailler sur une autre url ? (ou, plus exactement,
la querystring d'une autre url).
Ben je veux pas :)
Comme je l'ai dit, c'est adapté à mon contexte.
Et j'en profite pour indiquer un argument qui ne me convainc pas dans la
POO : c'est extensible, réutilisable...
Super ! Mais qd j'ai :
1/ des délais à tenir,
2/ des fonctions qui ne me serviront plus ou qui ne me serviront jamais
autrement,
je ne vois nullement l'intérêt de perdre du temps à rendre tout
parfaitement adaptable à tout contexte
(c'est aussi valable pour du dev
non objet d'ailleurs.)
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes
façons pas exécutée. Donc le test est inutile.
Ben non : Invalid argument supplied for foreach().
Fonctionne normalement avec ma condition inutile.
foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
C'est vrai que ça fait couillon et peut nuire à la compréhension... mais
c'est comme ça (je vais qd même pas faire un flip juste pour pouvoir
lire les key !).
if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
Je ne vois pas en quoi c'est incomplet.
A mon avis, question de style.
En tout cas, je fais toujours comme ça quand je sais qu'il n'y aura rien
de plus après la condition.
JE SAIS que ça peut ne pas plaire, mais les accolades de partout, ça me
gonfle et je ne trouve pas ça DU TOUT plus lisible.
A l'inverse, les
($a==='prout')?'do_this':(($b==='crotte')?'youpi':'piyou'))
ça m'insupporte.
Il y a aussi une question de gout. Y'en a qui mettent des switch dès la
moindre condition, y'en a (y'en a ?) qui aiment les endif, etc.
le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...
}
$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec
array_merge, tu aura un remplacement pur et simple.
Alors ça, c'est une TRES BONNE remarque même si dans ce que tu cites ça
ne pose nullement problème.
En effet, des index sont ajoutés aux queries (si j'ai
?nom[]=bob&nom[]=tom, j'obtiens ?nom[0]=bob&nom[1]=tom).
Mais ça coince pour le del car le unset n'est plus bon.
return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
Ah ouais ça change tout et puis c'est balèze de reconstruire une url !
:)
(et en fait, c'est fait dans mes fonctions)
Bruno Desthuilliers a écrit :En PHP, c'est d'un intérêt limité (j'ai pas dit "inutile", hein...).
Ca a plus de sens dans un langage objet (un vrai, je veux dire), et -
en matière de développement web, avec un modèle d'exécution basé sur
un long running process.
Pourtant PHP5 est censé être pas mal objet non (et le 6 carrément donc) ?
Je doute que ce soit inutile tout de même (oui, tu l'as pas dit, ok.)
function changeQuery($add=array(),$del=array()) {
parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
1/ t'a pas déclaré ni initialisé $output avant.
exact mais ça l'est en fait.
2/ et si je veux travailler sur une autre url ? (ou, plus exactement,
la querystring d'une autre url).
Ben je veux pas :)
Comme je l'ai dit, c'est adapté à mon contexte.
Et j'en profite pour indiquer un argument qui ne me convainc pas dans la
POO : c'est extensible, réutilisable...
Super ! Mais qd j'ai :
1/ des délais à tenir,
2/ des fonctions qui ne me serviront plus ou qui ne me serviront jamais
autrement,
je ne vois nullement l'intérêt de perdre du temps à rendre tout
parfaitement adaptable à tout contexte
(c'est aussi valable pour du dev
non objet d'ailleurs.)
if (count($del))
Si $del est un tableau vide, la boucle foreach ne sera de toutes
façons pas exécutée. Donc le test est inutile.
Ben non : Invalid argument supplied for foreach().
Fonctionne normalement avec ma condition inutile.
foreach ($del as $value) {
ce sont plutôt des clés, non ?-)
C'est vrai que ça fait couillon et peut nuire à la compréhension... mais
c'est comme ça (je vais qd même pas faire un flip juste pour pouvoir
lire les key !).
if (isset($output[$value])) unset($output[$value]);
J'aime pas les conditionnelles incomplètes:
if (isset($output[$value])) {
unset($output[$value]);
}
Je ne vois pas en quoi c'est incomplet.
A mon avis, question de style.
En tout cas, je fais toujours comme ça quand je sais qu'il n'y aura rien
de plus après la condition.
JE SAIS que ça peut ne pas plaire, mais les accolades de partout, ça me
gonfle et je ne trouve pas ça DU TOUT plus lisible.
A l'inverse, les
($a==='prout')?'do_this':(($b==='crotte')?'youpi':'piyou'))
ça m'insupporte.
Il y a aussi une question de gout. Y'en a qui mettent des switch dès la
moindre condition, y'en a (y'en a ?) qui aiment les endif, etc.
le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
moins tu risques pas de manger une fermeture de bloc au passage...
}$result = array_merge($output,$add);
Attention, il est parfaitement valide d'avoir plusieurs fois le même
paramètre dans une querystring (paramètre multivalué). Avec
array_merge, tu aura un remplacement pur et simple.
Alors ça, c'est une TRES BONNE remarque même si dans ce que tu cites ça
ne pose nullement problème.
En effet, des index sont ajoutés aux queries (si j'ai
?nom[]=bob&nom[]=tom, j'obtiens ?nom[0]=bob&nom[1]=tom).
Mais ça coince pour le del car le unset n'est plus bon.return http_build_query($result, '', '&');
}
Manque quand même un truc : là tu renvoie une querystring, pas une URL
complète.
Ah ouais ça change tout et puis c'est balèze de reconstruire une url !
:)
(et en fait, c'est fait dans mes fonctions)
Olivier Masson a écrit :Comme je l'ai dit, c'est adapté à mon contexte.
Donc quand tu aura le besoin de la même fonction mais pouvant bosser sur
n'importe quelle querystring arbitraire, tu fera un copié-collé et tu
aura deux implémentations à maintenir en parallèle ?
Certaines fonctionnalités sont tellement spécifiques à un projet qu'il
serait effectivement inepte de vouloir les rendre générique. D'autre,
par contre, correspondent à des besoins récurrents, et il est parfois
très simple de les rendre tout de suite suffisament générique pour
couvrir la majorité des cas d'utilisation. C'est ici le cas, et
l'"effort" nécessaire est tellement dérisoire (deux lignes de code et 15
secondes de réflexion....) qu'il est AMHA dommage de ne pas l'avoir fait
immédiatement.
Eh, tu postes ton code, je cherche la petite bête, hein ?-)
Olivier Masson a écrit :
Comme je l'ai dit, c'est adapté à mon contexte.
Donc quand tu aura le besoin de la même fonction mais pouvant bosser sur
n'importe quelle querystring arbitraire, tu fera un copié-collé et tu
aura deux implémentations à maintenir en parallèle ?
Certaines fonctionnalités sont tellement spécifiques à un projet qu'il
serait effectivement inepte de vouloir les rendre générique. D'autre,
par contre, correspondent à des besoins récurrents, et il est parfois
très simple de les rendre tout de suite suffisament générique pour
couvrir la majorité des cas d'utilisation. C'est ici le cas, et
l'"effort" nécessaire est tellement dérisoire (deux lignes de code et 15
secondes de réflexion....) qu'il est AMHA dommage de ne pas l'avoir fait
immédiatement.
Eh, tu postes ton code, je cherche la petite bête, hein ?-)
Olivier Masson a écrit :Comme je l'ai dit, c'est adapté à mon contexte.
Donc quand tu aura le besoin de la même fonction mais pouvant bosser sur
n'importe quelle querystring arbitraire, tu fera un copié-collé et tu
aura deux implémentations à maintenir en parallèle ?
Certaines fonctionnalités sont tellement spécifiques à un projet qu'il
serait effectivement inepte de vouloir les rendre générique. D'autre,
par contre, correspondent à des besoins récurrents, et il est parfois
très simple de les rendre tout de suite suffisament générique pour
couvrir la majorité des cas d'utilisation. C'est ici le cas, et
l'"effort" nécessaire est tellement dérisoire (deux lignes de code et 15
secondes de réflexion....) qu'il est AMHA dommage de ne pas l'avoir fait
immédiatement.
Eh, tu postes ton code, je cherche la petite bête, hein ?-)
Pas seulement. Si tu savais les horreurs que j'ai vu dans des applis de
gestion...
Comme l'usage des float pour gérer les flux monétaires ?
Pas seulement. Si tu savais les horreurs que j'ai vu dans des applis de
gestion...
Comme l'usage des float pour gérer les flux monétaires ?
Pas seulement. Si tu savais les horreurs que j'ai vu dans des applis de
gestion...
Comme l'usage des float pour gérer les flux monétaires ?
Le 05/11/2009 21:12, Mickaël Wolff a écrit :
> Comme l'usage des float pour gérer les flux monétaires ?
Trouvé sur le « daily WTF » francophone :
http://img.thedailywtf.com/images/fr/errors/bateau.JPG
Le 05/11/2009 21:12, Mickaël Wolff a écrit :
> Comme l'usage des float pour gérer les flux monétaires ?
Trouvé sur le « daily WTF » francophone :
http://img.thedailywtf.com/images/fr/errors/bateau.JPG
Le 05/11/2009 21:12, Mickaël Wolff a écrit :
> Comme l'usage des float pour gérer les flux monétaires ?
Trouvé sur le « daily WTF » francophone :
http://img.thedailywtf.com/images/fr/errors/bateau.JPG
Le 05/11/2009 21:12, Mickaël Wolff a écrit :Pas seulement. Si tu savais les horreurs que j'ai vu dans des applis de
gestion...
Comme l'usage des float pour gérer les flux monétaires ?
Trouvé sur le « daily WTF » francophone :
http://img.thedailywtf.com/images/fr/errors/bateau.JPG
Le 05/11/2009 21:12, Mickaël Wolff a écrit :
Pas seulement. Si tu savais les horreurs que j'ai vu dans des applis de
gestion...
Comme l'usage des float pour gérer les flux monétaires ?
Trouvé sur le « daily WTF » francophone :
http://img.thedailywtf.com/images/fr/errors/bateau.JPG
Le 05/11/2009 21:12, Mickaël Wolff a écrit :Pas seulement. Si tu savais les horreurs que j'ai vu dans des applis de
gestion...
Comme l'usage des float pour gérer les flux monétaires ?
Trouvé sur le « daily WTF » francophone :
http://img.thedailywtf.com/images/fr/errors/bateau.JPG
Vous utilisez quoi pour les sous alors ?
Parce que moi, qd j'ai du float en base à exploiter, je garde bêtement
le float (bien évidemment, je n'affiche que 2 décimales et je passe par
printf).
Et quand c'est moi qui m'occupe de la base... je fais pareil :)
Mais bon, je ne gère pas les échanges de devises sur lesquelles un
cercle de gens puants (oups, HS) peuvent se faire un max sur un
changement de la 4eme décimales.
Vous utilisez quoi pour les sous alors ?
Parce que moi, qd j'ai du float en base à exploiter, je garde bêtement
le float (bien évidemment, je n'affiche que 2 décimales et je passe par
printf).
Et quand c'est moi qui m'occupe de la base... je fais pareil :)
Mais bon, je ne gère pas les échanges de devises sur lesquelles un
cercle de gens puants (oups, HS) peuvent se faire un max sur un
changement de la 4eme décimales.
Vous utilisez quoi pour les sous alors ?
Parce que moi, qd j'ai du float en base à exploiter, je garde bêtement
le float (bien évidemment, je n'affiche que 2 décimales et je passe par
printf).
Et quand c'est moi qui m'occupe de la base... je fais pareil :)
Mais bon, je ne gère pas les échanges de devises sur lesquelles un
cercle de gens puants (oups, HS) peuvent se faire un max sur un
changement de la 4eme décimales.