Logikai adattípus
Ez a legegyszerűbb típus. Egy boolean igazságértéket fejez ki. Lehet vagy TRUE (igaz), vagy FALSE (hamis).
Note: A logikai adattípus a PHP 4-esben került bevezetésre.
Szintaxis
Egy logikai érték megadásához használhatod a TRUE vagy FALSE szavakat, szükség szerint. Egyik jelentése sem függ a kis- és nagybetűs írásmódtól.
<?php
$igaz = True; // a logikai igaz értéket adjuk az $igaz változónak
?>
Tipikus valamilyen operátor használatakor kapsz boolean típusú értéket, amit egy vezérlési szerkezetben fel tudsz használni.
<?php
// A == operátor egyenlőséget vizsgál
// majd boolean-t ad vissza
if ($akcio == "verzio_kiirasa") { // a == operátor boolean értékkel tér vissza
echo "Ez az 1.23-as változat";
}
// ez nem szükséges...
if ($elvalaszto_kiirasa == TRUE) {
echo "<hr>\n";
}
// ...mivel egyszerűen ez is működik
if ($elvalaszto_kiirasa) {
echo "<hr>\n";
}
?>
Logikai értékké alakítás
Ha kifejezetten boolean típusúvá szeretnél alakítani egy értéket, használd a (bool) vagy a (boolean) típusátalakítást. A legtöbb esetben azonban nem kell ezt alkalmaznod, mivel az érték automatikusan átalakul, ha egy operátor, függvény, vagy vezérlési szerkezet boolean típusú argumentumot vár.
Lásd még a Bűvészkedés a típusokkal című részt.
Amikor boolean típusúvá kell alakítani egy értéket, az alábbiak FALSE értéket adnak:
- a boolean típusú FALSE
- az integer (egész)típusú 0 (nulla)
- a float (lebegőpontos) 0.0 (nulla)
- az üres string, és a "0" string
- egy elemeket nem tartalmazó array (tömb)
- egy attribútumokat nem tartalmazó object (objektum) (csak PHP 4)
- a speciális NULL érték (beleétve a nem beállított - hivatkozást megelőzően nem definiált - változókat)
A -1 is TRUE lesz, mint minden más nem nulla (akár negatív, akár pozitív) szám!
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "ize"); // 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)
?>