JeuWeb - Crée ton jeu par navigateur
Comparaisons larges ou stictes ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Comparaisons larges ou stictes ? (/showthread.php?tid=3473)

Pages : 1 2 3 4


RE: Comparaisons larges ou stictes ? - Wells - 30-12-2008

Sauf que non, c'est juste toi qui code mal selon moi puisque tu devrais logiquement avoir:

//myFonction retourne 0 pour l'exemple
if(myFonction() ==0) //passage dans le if
echo 'erreur';

Tu utilise le === pour pallier ton manque de logique dans ta façon de programmer.

Soit une erreur c'est false, soit c'est 0. Décide toi une fois pour toute et utilise toujours la même chose Smile

Je veux pas paraitre agressif ou méchant, mais ton astuce est selon moi plus un raccourci pour combler un manque de rigueur qu'autre chose Smile


RE: Comparaisons larges ou stictes ? - Anthor - 30-12-2008

(30-12-2008, 05:35 PM)Wells a écrit : Sauf que non, c'est juste toi qui code mal selon moi puisque tu devrais logiquement avoir:

//myFonction retourne 0 pour l'exemple
if(myFonction() ==0) //passage dans le if
echo 'erreur';

Tu utilise le === pour pallier ton manque de logique dans ta façon de programmer.

Soit une erreur c'est false, soit c'est 0. Décide toi une fois pour toute et utilise toujours la même chose Smile

Je veux pas paraitre agressif ou méchant, mais ton astuce est selon moi plus un raccourci pour combler un manque de rigueur qu'autre chose Smile

Sauf que false ou 0 avec un double égal, vaut la même chose. Il existe des fonctions native de php, qui demande une comparaison stricte pour être sûr du résultat, sont-elles mal codées ?


RE: Comparaisons larges ou stictes ? - janeo - 30-12-2008

Anthor a raison non?


RE: Comparaisons larges ou stictes ? - wild-D - 30-12-2008

(30-12-2008, 05:35 PM)Wells a écrit : Sauf que non, c'est juste toi qui code mal selon moi puisque tu devrais logiquement avoir:

//myFonction retourne 0 pour l'exemple
if(myFonction() ==0) //passage dans le if
echo 'erreur';

Tu utilise le === pour pallier ton manque de logique dans ta façon de programmer.

Soit une erreur c'est false, soit c'est 0. Décide toi une fois pour toute et utilise toujours la même chose Smile

Je veux pas paraitre agressif ou méchant, mais ton astuce est selon moi plus un raccourci pour combler un manque de rigueur qu'autre chose Smile

^^ manque de logique dans ta façon de programmer Oo'...
heu prendre en considération qu'une fonction puisse retourner 0 et FALSE, ça me semble pas tenir d'une erreur de logique, bien au contraire.

Et pour le code d'erreur toujours à FALSE... t'as jamais programmé de fonction qui répondait juste oui/non ?
moi dans ces cas là en général je préfère retourner TRUE/FALSE plutot que 1/0; et donc logiquement difficile d'utiliser FALSE comme "code de retour d'erreur".

note que logiquement si une fonction doit retourner normalement un entier (un booléen,...); on se fou de savoir si le code d'erreur est NULL ou FALSE ou autre. On peut tester simplement avec is_int() (is_bool(),...) plutot qu'un test de type === ou ==

--
mdr anthor; c'est vrai quoi les fonctions php pourraient lancer des exceptions... :heuuu: je sais pas si ce serait plus facile/pratique à gérer.


RE: Comparaisons larges ou stictes ? - Anthor - 30-12-2008

(30-12-2008, 11:28 PM)wild-D a écrit : mdr anthor; c'est vrai quoi les fonctions php pourraient lancer des exceptions... :heuuu: je sais pas si ce serait plus facile/pratique à gérer.

Pas compris ? :omg:


RE: Comparaisons larges ou stictes ? - jo_link_noir - 31-12-2008

@Wells : je crois que t'as bien comprit mon exemple. 0 est une des valeurs possible de retour dans des conditions normales. False est une erreur...

Si on reprend mon exemple avec la fonction array_search cela sera peut-être plus clair ?

php.net a écrit :array_search — Recherche dans un tableau la clé associée à une valeur
_________________

Retourne la clé pour needle si elle est trouvée dans le tableau, FALSE sinon.
_________________

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.



RE: Comparaisons larges ou stictes ? - wild-D - 31-12-2008

pas grave anthor, c'était de l'ironie à 2 balles dans le prolongement de ta remarque; sur la manière de gérer les erreurs des fonctions natives php:
(30-12-2008, 07:46 PM)Anthor a écrit : Sauf que false ou 0 avec un double égal, vaut la même chose. Il existe des fonctions native de php, qui demande une comparaison stricte pour être sûr du résultat, sont-elles mal codées ?

ouiiin je suis un grand incompris :pleure2:


RE: Comparaisons larges ou stictes ? - Wells - 31-12-2008

ok d'accord j'avais mal compris ta problématique. Dans ce cas de figure je suis d'accord avec toi Wink


RE: Comparaisons larges ou stictes ? - Anthor - 31-12-2008

(31-12-2008, 11:20 AM)wild-D a écrit : pas grave anthor, c'était de l'ironie à 2 balles dans le prolongement de ta remarque; sur la manière de gérer les erreurs des fonctions natives php:
(30-12-2008, 07:46 PM)Anthor a écrit : Sauf que false ou 0 avec un double égal, vaut la même chose. Il existe des fonctions native de php, qui demande une comparaison stricte pour être sûr du résultat, sont-elles mal codées ?

ouiiin je suis un grand incompris :pleure2:

Meuh non Smile