Comparaison de types en PHP

Bien que PHP soit un langage à typage faible, il reste nécessaire de comprendre les types de variables et leur signification, car nous devons souvent comparer des variables PHP, y compris les comparaisons lâches et strictes.

  • Comparaison lâche : utilisez deux signes égaux==Lors de la comparaison, seules les valeurs sont comparées, pas les types.
  • Comparaison stricte : utilisez trois signes égaux===Lors de la comparaison, en plus de comparer les valeurs, les types sont également comparés.

Par exemple, "42" est une chaîne tandis que 42 est un entier.FALSEest une valeur booléenne et"FALSE"est une chaîne.

Exemple

<?php if(42 == "42") { echo '1. Valeurs égales'; } echo PHP_EOL; //Caractère de nouvelle ligne if(42 === "42") { echo '2. Types égaux'; } else { echo '3. Les types ne sont pas égaux'; } ?>

La sortie de l'exemple ci-dessus est :

1、值相等
3、类型不相等

Comparer 0, false, null en PHP

Code de test :

Exemple

<?php echo '0 == false: '; var_dump(0 == false); echo '0 === false: '; var_dump(0 === false); echo PHP_EOL; echo '0 == null: '; var_dump(0 == null); echo '0 === null: '; var_dump(0 === null); echo PHP_EOL; echo 'false == null: '; var_dump(false == null); echo 'false === null: '; var_dump(false === null); echo PHP_EOL; echo '"0" == false: '; var_dump("0" == false); echo '"0" === false: '; var_dump("0" === false); echo PHP_EOL; echo '"0" == null: '; var_dump("0" == null); echo '"0" === null: '; var_dump("0" === null); echo PHP_EOL; echo '"" == false: '; var_dump("" == false); echo '"" === false: '; var_dump("" === false); echo PHP_EOL; echo '"" == null: '; var_dump("" == null); echo '"" === null: '; var_dump("" === null);

La sortie de l'exemple ci-dessus est :

0 == false: bool(true)
0 === false: bool(false)

0 == null: bool(true)
0 === null: bool(false)

false == null: bool(true)
false === null: bool(false)

"0" == false: bool(true)
"0" === false: bool(false)

"0" == null: bool(false)
"0" === null: bool(false)

"" == false: bool(true)
"" === false: bool(false)

"" == null: bool(true)
"" === null: bool(false)

Autres extensions