Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Une comparaison non transitive

By Gina Peter Banyard

<?php

var_dump('0' == 0);

var_dump('0' == false);
var_dump(0 == false);

// Non transifive
var_dump('0' == null);
var_dump(0 == null);

Parfois, je crois sincèrement avoir saisi toute l’étrange sémantique de PHP, et puis je découvre quelque chose de si simple que ça brise une hypothèse que j’avais sur le langage.

Je savais que NAN == X peut retourner true.

Je savais que les opérateurs de comparaison ne sont pas transitifs.

Je savais évidemment que "0" == 0 et "0" == false retournent true.

Et pourtant, il était naïf de ma part de croire que tous les cas de X == false donneraient la même réponse que X == null.

Comme quoi, "0" == null est false.

See Also

PHP Features

Last updated: 11 October 2026