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.
Megjegyzés: PHP-ben nincs egész osztás. Az 1/2 művelet a 0.5 float (lebegépontos) értéket eredményezi.
Az integer típus értelmezési tartományán kívül eső egész értékek float típussá alakulnak.
$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 egy hiba van a PHP-ben (még a 4.0.6-osban is, de feltehetően a 4.0.7-es már javítja a hibát). Ez az átalakítás nem működik mindig pontosan, ha negatív számokkal is számolunk. Például: ha a -50000 * $millio értéket kérjük, a válasz: -429496728. Ha mindkét operandus pozitív, nincs semmi probléma. |
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. |