Page 1 sur 1

0 == 'abcd' ?

Posté : 30 juil. 2018, 16:34
par carte-sd
Bonjour à tous,
J'aimerais votre avis sur ce problème. Je suis assez fatigué aujourd'hui du coup j'ai du mal à réfléchir donc je m'excuse si c'est un truc tout bête que je n'ai pas compris :oops:

Code : Tout sélectionner

<?php var_dump( PHP_VERSION, // 7.2.3 0 == 'abcd' // true );
Pouvez-vous m'expliquer ?
Merci !

Re: 0 == 'abcd' ?

Posté : 31 juil. 2018, 08:53
par Spols
Je pense que comme le premier membre de la comparaison est un entier, la conversion de lachaine de caractère en entier donne null et donc 0 == null => true

Re: 0 == 'abcd' ?

Posté : 05 août 2018, 23:15
par @rthur
Et voilà pourquoi, il faut toujours utiliser 3 signes égales pour faire une comparaison stricte, uniquement avec 2 signes tu as du transtypage donc pour des cas spécifiques ça ne fonctionne pas comme la logique le voudrait.

Tu as un résumé de plein de cas étranges ici :
http://php.net/manual/fr/types.comparisons.php