PHP/MySQL : Cast implicite foireux - PHP - Programmation
Marsh Posté le 03-07-2007 à 11:56:23
Par contre quand je remplace
Code :
|
Par
Code :
|
Ca marche
Pourquoi
Marsh Posté le 03-07-2007 à 12:27:55
theredled a écrit : Pourquoi |
Parceque c'est comme ça !
D'abord, "or" est un opérateur logique : il retourne toujours un boolean, dans tous les cas
Code :
|
Mais alors pourquoi une syntaxe comme "mysql_bidule() or die()" ça fonctionne ? Parceque les opérateurs logique s'arretent dès que la condition est vérifiée (je sais plus comment ça s'appelle ça). En gros, si mysql_bidule() retourne vrai, ça sert à rien de tester la suite puisque de toutes façons, que ça soit vrai ou faux, ça retournera vrai. Par contre si mysql_bidule() est faux, alors on passe à l'autre partie.
Ensuite, pour la deuxième syntaxe, c'est une question d'ordre de priorité des opérateurs en PHP ( voir http://www.php.net/manual/fr/langu [...] precedence ). En gros l'opérateur "=" est prioritaire sur "or". Donc :
Code :
|
mais
Code :
|
Voila voila
Marsh Posté le 03-07-2007 à 13:22:15
Oh mon dieu je n'avais pas vu ce "or die" qui n'a rien à foutre là en fait
merci
Marsh Posté le 03-07-2007 à 11:20:11
Hello
- J'ai dans une table un valeur float égale à 0.000
- Je la chope avec mysql_result qui la cast en string (normal)
- Ce mysql_result est retourné par une fonction, qui elle me donne un boolean
Voici les bouts de la chose :
La fonction slvGetCreditDispo() :
la fonction mysql_val() :
Où est le pb ?
Message édité par theredled le 03-07-2007 à 11:21:02
---------------
Contes de fées en yaourt --- █ --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique