Boolska värden
Version från den 12 augusti 2024 kl. 06.45 av Admin (diskussion | bidrag)
- 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) ?>