Câu trả lời:
Kích thước của một số nguyên phụ thuộc vào nền tảng, mặc dù giá trị tối đa khoảng hai tỷ là giá trị thông thường (đó là 32 bit có dấu). PHP không hỗ trợ số nguyên không dấu. Kích thước số nguyên có thể được xác định bằng cách sử dụng hằng số PHP_INT_SIZE và giá trị tối đa bằng cách sử dụng hằng số PHP_INT_MAX kể từ PHP 4.4.0 và PHP 5.0.5.
Các nền tảng 64-bit thường có giá trị tối đa khoảng 9E18, ngoại trừ trên Windows trước PHP 7, nơi nó luôn là 32 bit.
Các bản dựng 32-bit của PHP:
Các bản dựng 64-bit của PHP:
Các con số được bao gồm.
Lưu ý: một số bản dựng 64-bit đã từng sử dụng số nguyên 32-bit, đặc biệt là các bản dựng Windows cũ hơn của PHP
Các giá trị bên ngoài các phạm vi này được biểu thị bằng các giá trị dấu phẩy động, cũng như các giá trị không phải là số nguyên trong các phạm vi này. Trình thông dịch sẽ tự động xác định thời điểm cần phải chuyển sang dấu phẩy động này dựa trên việc giá trị kết quả của một phép tính không thể được biểu diễn dưới dạng số nguyên.
PHP không hỗ trợ cho các số nguyên "không dấu" như vậy, giới hạn giá trị lớn nhất của tất cả các số nguyên trong phạm vi của một số nguyên "có dấu".
Kích thước của các int PHP phụ thuộc vào nền tảng :
Kích thước của một số nguyên phụ thuộc vào nền tảng, mặc dù giá trị tối đa khoảng hai tỷ là giá trị thông thường (đó là 32 bit có dấu). PHP không hỗ trợ số nguyên không dấu. Kích thước số nguyên có thể được xác định bằng cách sử dụng hằng số PHP_INT_SIZE và giá trị tối đa bằng cách sử dụng hằng số PHP_INT_MAX kể từ PHP 4.4.0 và PHP 5.0.5.
PHP 6 thêm "longs" (64 bit ints).
(hơi muộn, nhưng có thể hữu ích)
Chỉ tin tưởng PHP_INT_MAX và PHP_INT_SIZE , giá trị này thay đổi tùy theo cung của bạn (32/64 bit) và hệ điều hành của bạn ...
Mọi "phỏng đoán" hoặc "gợi ý" khác đều có thể sai.
Ah tôi đã tìm thấy nó: 2 32 - 1 (2147483647)
Tràn số nguyên
Nếu PHP gặp một số vượt quá giới hạn của kiểu số nguyên, nó sẽ được hiểu là số thực thay thế. Ngoài ra, một phép toán dẫn đến một số vượt quá giới hạn của kiểu số nguyên sẽ trả về một số thực thay thế.
<?php
$large_number = 2147483647;
var_dump($large_number);
// output: int(2147483647)
$large_number = 2147483648;
var_dump($large_number);
// output: float(2147483648)
Nó phụ thuộc vào hệ điều hành của bạn, nhưng 2147483647 là giá trị thông thường, theo sách hướng dẫn .