que devrait afficher le code suivant :
<?php $a = 0; $b = 'x'; echo $a.' = '.$b.' => '.($a==$b ? 'oui' : 'non'); ?>
pour moi ca devrait me retourner 'non', et ca me retourne 'oui' !!!
quelqu'un aurait une explication ?
Sasume (./6) :
Je sais bien, je proposais un parenthésage supplémentaire, pour lever une ambiguïté possible
squalyl (./5) :
exemple de la doc: $foo = 1 + "bob3"; // $foo est du type integer (1)
squalyl (./7) :
ce qui est marrant c'est que 0 soit pas converti en chaine "0"
[squalyl@dedibox ~]$ cat test.c #include <stdio.h> #include <errno.h> #include <stdlib.h> int main(void) { long int l; char *data,*end; data="12345"; errno=0; l=strtol(data,&end,10); printf("data=[%s] long=[%ld] errno=[%d] end=data+%d\n",data,l,errno,end-data); data="plop"; errno=0; l=strtol(data,&end,10); printf("data=[%s] long=[%ld] errno=[%d] end=data+%d\n",data,l,errno,end-data); return 0; } [squalyl@dedibox ~]$ gcc test.c [squalyl@dedibox ~]$ ./a.out data=[12345] long=[12345] errno=[0] end=data+5 data=[plop] long=[0] errno=[0] end=data+0
[squalyl@dedibox ~]$ cat test.c #include <stdio.h> #include <errno.h> #include <stdlib.h> int main(void) { double l; char *data,*end; data="12345"; errno=0; l=strtod(data,&end); printf("data=[%s] double=[%g] errno=[%d] end=data+%d\n",data,l,errno,end-data); data="plop"; errno=0; l=strtod(data,&end); printf("data=[%s] double=[%g] errno=[%d] end=data+%d\n",data,l,errno,end-data); return 0; } [squalyl@dedibox ~]$ gcc test.c [squalyl@dedibox ~]$ ./a.out data=[12345] double=[12345] errno=[0] end=data+5 data=[plop] double=[0] errno=[0] end=data+0
Sasume (./14) :
J'ai pas compris l'intérêt de ton code en C squalyl
Sinon Spipu la solution proposée en ./6 ne convenait pas ?