Egy integer a következő halmaz része: Z = {..., -2, -1, 0, 1, 2, ...}.
Lásd még a Tetszőleges pontosságú egészek és a Lebegőpontos számok című részeket.
Az egészek megadhatók decimális (10 alapú), hexadecimális (16 alapú) vagy oktális (8 alapú) számként, opcionális előjellel (- vagy +).
Ha az oktális formát választod, a számot egy 0 (nulla) jeggyel kell kezdened, ha a hexadecimálisat, akkor 0x-el.
Az integer típus értelmezési tartományán kívül eső egész értékek float típussá alakulnak. Ha valamely művelet eredménye kívül esik a integer értelmezési tartományán, akkor az eredmény automatikusan float típusúvá konvertálódik.
$nagy_szam = 2147483647; var_dump($nagy_szam); // kimenete: int(2147483647) $nagyobb_szam = 2147483648; var_dump($nagyobb_szam); // kimenete: float(2147483648) // ez működik hexadecimálisan megadott egészekre is: var_dump( 0x80000000 ); // kimenete: float(2147483648) $millio = 1000000; $nagy_szam = 50000 * $millio; var_dump($nagy_szam); // kimenete: float(50000000000) |
Figyelem |
Sajnálatosan meg kell említenünk, hogy a PHP 4.0.6-ban ez az átalakítás nem működött mindig pontosan negatív számok használatakor, például: ha a -50000 * $millio műveletet eredménye: -429496728. Ha mindkét operandus pozitív, nincs semmi probléma. Ezt a hiba ki lett javítva a PHP 4.1.0-ben. |
PHP-ben nincs egész osztás. Az 1/2 művelet a 0.5 float (lebegépontos) értéket eredményezi.
Ha kifejezetten integer típusúvá szeretnél alakítani egy értéket, használd az (int) vagy az (integer) 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 integer típusú argumentumot vár.
Lásd még a Bűvészkedés a típusokkal című részt.
A FALSE (hamis) érték a 0 (nulla) egész számmá alakul, a TRUE (igaz) érték az 1 (egy) egész számot adja.
Lebegépontos számok egész értékké alakításakor a szám tört része elvész, azaz lefelé kerekítés történik.
Ha a lebegőpontos szám az egész tartományon kívül esik (általában +/- 2.15e+9 = 2^31), az eredmény nem definiált, mivel a lebegőpontos szám nem rendelkezik elég precizitással, hogy pontos egész eredményt kapj. Sem warning, sem notice szintű hiba nem lép fel ebben az esetben!
Figyelem |
Soha ne alakíts egy ismeretlen törtszámot integer típusúvá, mivel ez időnként nem várt eredményekhez vezethet. Lásd a a lebegőpontos számok pontotsságának problémái című részt. |
Lásd a String átalakítás című részt.
Figyelem |
Az egésszé alakítás viselkedése más típusokra nem definiált. Jelenleg ezek az átalakítások megegyeznek azzal, mintha először logikai, majd utána egész értékké alakítottad volna a kiindulási értéket. Erre a viselkedeésre azonban nem szabad építeni, mivel minden figyelmeztetés nélkül megváltozhat. |