Sulla mia macchina PHP_INT_SIZE
è 8
ma pack('i',1)
restituisce comunque una stringa di 4 byte.Il pacchetto ('i', 1) ha sempre 4 byte?
The docs dire i
è un "numero intero con segno (dimensioni dipendenti dalla macchina e ordine in byte)" ma ciò non sembra essere vero. È fissato a 4 byte?
Ciò significa che unpack('i',pack('i',PHP_INT_MAX))[1] !== PHP_INT_MAX
su macchine a 64 bit poiché metà dei dati viene interrotta.
Appena riprodotto in Linux a 64 bit, quindi non è necessariamente un problema solo per Windows a causa della mancanza di 64-bit integer. –
"numero intero con segno (dimensioni dipendenti dalla macchina e ordine dei byte)" non significa che la sua dimensione dovrebbe essere uguale a 'PHP_INT_SIZE', anche se è ciò che tutti farebbero tranne. – Holt