PHP Booléen


Exemple

Boolean est un type ayant deux valeurs, noté true ou false .

Ce code définit la valeur de $foo comme true et $bar comme false :

$foo = true;
$bar = false;

true et false ne sont pas sensibles à la casse, donc TRUE et FALSE peuvent également être utilisés, même FaLsE est possible. L'utilisation des minuscules est la plus courante et recommandée dans la plupart des guides de style de code, par exemple PSR-2 .

Les booléens peuvent être utilisés dans les instructions if comme ceci:

if ($foo) { //same as evaluating if($foo == true)
    echo "true";
}

Étant donné que PHP est faiblement typé, si $foo ci-dessus est différent de true ou false , il est automatiquement forcé à une valeur booléenne.
Les valeurs suivantes entraînent false :

  • une valeur nulle: 0 (entier), 0.0 (flottant) ou '0' (chaîne)
  • une chaîne vide '' ou une matrice []
  • null (le contenu d'une variable non définie ou assigné à une variable)

Toute autre valeur est true .

Pour éviter cette faible comparaison, vous pouvez appliquer une comparaison forte en utilisant === , qui compare la valeur et le type . Voir Comparaison de type pour plus de détails.

Pour convertir un type en booléen, vous pouvez utiliser le cast (bool) ou (boolean) avant le type.

var_dump((bool) "1"); //evaluates to true

ou appelez la fonction boolval :

var_dump( boolval("1") ); //evaluates to true

Conversion booléenne en chaîne (notez que false génère une chaîne vide):

var_dump( (string) true ); // string(1) "1"
var_dump( (string) false ); // string(0) ""

Conversion booléenne en entier:

var_dump( (int) true ); // int(1)
var_dump( (int) false ); // int(0)

Notez que le contraire est également possible:

var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)

De même, tous les non-zéro renverront true:

var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)