Số nguyên là một trong những kiểu số vô hướng được tích hợp sẵn trong PHP. Một số nguyên, không có dấu thập phân trong biểu thức, thuộc kiểu "int" trong PHP. Một số nguyên có thể được biểu diễn dưới dạng hệ thập phân (cơ số 10), hệ thập lục (cơ số 16), hệ bát phân (cơ số 8) hoặc hệ nhị phân (cơ số 2).
Để sử dụng định dạng số bát phân, một số cần được đặt trước bằng "0o" hoặc "0O" (PHP 8.1.0 và các phiên bản trước đó). Từ PHP 8.1.0 trở đi, một số được tiền tố bằng "0" và không có dấu thập phân là một số bát phân.
Để sử dụng ký hiệu thập lục phân, hãy đặt trước số với "0x". Để sử dụng ký hiệu nhị phân, hãy đặt trước số với "0b".
Hãy xem ví dụ sau đây −
<?php $a = 1234; echo "1234 is an Integer in decimal notation: $a\n"; $b = 0123; echo "0o123 is an integer in Octal notation: $b\n"; $c = 0x1A; echo "0xaA is an integer in Hexadecimal notation: $c\n"; $d = 0b1111; echo "0b1111 is an integer in binary notation: $d"; ?>
Nó sẽ tạo ra output −
1234 is an Integer in decimal notation: 1234 0o123 is an integer in Octal notation: 83 0xaA is an integer in Hexadecimal notation: 26 0b1111 is an integer in binary notation: 15
Từ PHP 7.4.0 trở đi, các hằng số số nguyên có thể chứa dấu gạch dưới (_) làm ký tự phân cách giữa các chữ số, nhằm cải thiện khả năng đọc của các hằng số. Những dấu gạch dưới này sẽ bị trình quét của PHP loại bỏ.
Hãy xem ví dụ sau đây −
<?php $a = 1_234_567; echo "1_234_567 is an Integer with _ as separator: $a"; ?>
Nó sẽ tạo ra output −
1_234_567 is an Integer with _ as separator: 1234567
PHP does not support unsigned ints . Kích thước của một int phụ thuộc vào nền tảng. Trên các hệ thống 32 bit, giá trị tối đa khoảng hai tỷ. Các nền tảng 64 bit thường có giá trị tối đa khoảng 9E18.
int kích thước có thể được xác định bằng cách sử dụng hằng số PHP_INT_SIZE, giá trị tối đa bằng cách sử dụng hằng số PHP_INT_MAX, và giá trị tối thiểu bằng cách sử dụng hằng số PHP_INT_MIN.
Nếu một số nguyên vượt quá giới hạn của kiểu int , hoặc bất kỳ phép toán nào dẫn đến một số vượt quá giới hạn của kiểu int , nó sẽ được hiểu là một số float thay thế.
Hãy xem ví dụ sau đây −
<?php $x = 1000000; $y = 50000000000000 * $x; var_dump($y); ?>
Nó sẽ tạo ra output −
float(5.0E+19)
PHP không có toán tử nào cho phép chia nguyên. Do đó, một phép chia giữa một số nguyên và một số thực luôn cho kết quả là số thực. Để thực hiện phép chia nguyên, bạn có thể sử dụng hàm tích hợp sẵn intval() .
Hãy xem ví dụ sau đây −
<?php $x = 10; $y = 3.5; $z = $x/$y; var_dump ($z); $z = intdiv($x, $y); var_dump ($z); ?>
Nó sẽ tạo ra output −
float(2.857142857142857) int(3)