Boolska värden

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Booleans
Bool-typen har endast två värden och används för att uttrycka ett sanningsvärde. Det kan vara antingen true eller false.
Syntax
För att specificera en boolsk literal, använd konstanterna true eller false. Båda är skiftlägesokänsliga.
<?php
$foo = True; // tilldela värdet TRUE till $foo
?>

Vanligtvis vidarebefordras resultatet av en operator som returnerar ett boolskt värde till en kontrollstruktur.

<?php
// == är en operator som testar
// likhet och returnerar en boolean
if ($action == "show_version") {
    echo "Versionen är 1.23";
}

// det här är inte nödvändigt...
if ($show_separators == TRUE) {
    echo "<hr>\n";
}

// ...eftersom detta kan användas med exakt samma betydelse:
if ($show_separators) {
    echo "<hr>\n";
}
?>
Konvertering till boolean
För att explicit konvertera ett värde till bool, använd (bool)-typomvandlingen. Generellt är detta inte nödvändigt eftersom när ett värde används i ett logiskt sammanhang kommer det automatiskt att tolkas som en boolsk typ. För mer information, se sidan om Typomvandling.

När konvertering till bool sker, anses följande värden vara falska:

  • själva boolska false
  • heltalet 0 (noll)
  • flyttalen 0.0 och -0.0 (noll)
  • den tomma strängen "", och strängen "0"
  • en array med noll element
  • enhetstypen NULL (inklusive odefinierade variabler)
  • Interna objekt som överbelastar sin typomvandlingsbeteende till bool. Exempelvis: SimpleXML-objekt skapade från tomma element utan attribut.

Alla andra värden anses vara sanna (inklusive resurser och NAN).

Varning
-1 anses vara sant, precis som alla andra icke-noll (vare sig negativa eller positiva) tal!
<?php
var_dump((bool) "");        // bool(false)
var_dump((bool) "0");       // bool(false)
var_dump((bool) 1);         // bool(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)
?>

PHP Språkreferens