Un Integer è un numero intero di lunghezza dipendente dal sistema operativo, in genere 32 bit con segno,
può essere specificato in base 10, 16, 8 eventualmente preceduto dal segno. I numeri che iniziano con una
cifra diversa da 0 vengono considerati decimali, se iniziano con 0 ottali, se iniziano con 0x esadecimali
<?php
$a = 1234;# numero decimale
$a = -123; # numero negativo
$a = 0123; # numero ottale (equivalente a 83 decimale)
$a = 0x1A; # numero esadecimale (equivalente a 26 decimale)
?>
Overflow degli interi
Se specificate un numero oltre i limiti del tipo intero questo verrà interpretato come float, lo stesso accade
per il risultato di una operazione tra interi
<?php
$large_number = 2147483647;
var_dump($large_number);
// output: int(2147483647), non supera il limite (32 bit)
$large_number = 2147483648;
var_dump($large_number);
// output: float(2147483648), supera il limite
// lo stesso vale per numeri in formato esadecimale
var_dump( 0x80000000 );
// output: float(2147483648)
$million = 1000000;
$large_number = 50000 * $million;
var_dump($large_number);
// output: float(50000000000, risultato dell’operazione
?>
Non esiste in PHP un operatore di divisione intera, il risultato è sempre float, l’operatore di cast (int) lo
tronca, per arrotondare al valore più vicino si usa la funzione round().
<?php
var_dump(25/7); // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7)); // float(4)
?>
Conversione ad intero
La conversione ad intero avviene automaticamente se un operatore, una funzione o una struttura di controllo
richiede un argomento intero.
Da un boolean FALSE ritorna 0 e TRUE ritorna 1, le stringhe vengono interpretate come interi nei casi che
vedremo successivamente, per altri tipi occorre cautela.
Popularity: 12% [?]
Vuoi essere sempre aggiornato??? Iscriviti ai feed o invia un trackback
Nessun commento, scrivi tu il primo!
Articoli correlati