Số PHP
Trong chương này, chúng ta sẽ tìm hiểu sâu hơn về Số nguyên, Số thực và Chuỗi số.
Số PHP
Một điều cần chú ý về PHP là nó cung cấp tính năng chuyển đổi kiểu dữ liệu tự động.
Vì vậy, nếu bạn gán một giá trị nguyên cho một biến, kiểu của biến đó sẽ tự động là một số nguyên. Sau đó, nếu bạn gán một chuỗi cho cùng một biến, kiểu sẽ thay đổi thành chuỗi.
Chuyển đổi tự động này đôi khi có thể phá vỡ mã của bạn.
Số nguyên PHP
2, 256, -256, 10358, -179567 đều là số nguyên.
Một số nguyên là một số không có bất kỳ phần thập phân nào.
Kiểu dữ liệu số nguyên là một số không thập phân từ -2147483648 đến 2147483647 trong hệ thống 32 bit và từ -9223372036854775808 đến 9223372036854775807 trong hệ thống 64 bit. Giá trị lớn hơn (hoặc thấp hơn) giá trị này sẽ được lưu trữ dưới dạng float, vì nó vượt quá giới hạn của một số nguyên.
Lưu ý: Một điều quan trọng khác cần biết là ngay cả khi 4 * 2.5 là 10, kết quả được lưu trữ dưới dạng float, vì một trong các toán hạng là float (2.5).
Dưới đây là một số quy tắc cho số nguyên:
- Một số nguyên phải có ít nhất một chữ số
- Một số nguyên KHÔNG được có dấu thập phân
- Một số nguyên có thể là số dương hoặc số âm
- Số nguyên có thể được chỉ định ở ba định dạng: thập phân (dựa trên 10), thập lục phân (dựa trên 16 - tiền tố là 0x) hoặc bát phân (dựa trên 8 - tiền tố là 0)
PHP có các hằng số được xác định trước sau đây cho các số nguyên:
- PHP_INT_MAX - Số nguyên lớn nhất được hỗ trợ
- PHP_INT_MIN - Số nguyên nhỏ nhất được hỗ trợ
- PHP_INT_SIZE - Kích thước của một số nguyên tính bằng byte
PHP có các chức năng sau để kiểm tra xem kiểu của một biến có phải là số nguyên hay không:
- is_int ()
- is_integer () - bí danh của is_int ()
- is_long () - bí danh của is_int ()
Thí dụ
Kiểm tra xem kiểu của một biến có phải là số nguyên hay không:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
Phao PHP
Số thực là một số có dấu thập phân hoặc một số ở dạng hàm mũ.
2.0, 256.4, 10.358, 7.64E + 5, 5.56E-5 đều là float.
Kiểu dữ liệu float thường có thể lưu trữ giá trị lên đến 1.7976931348623E + 308 (phụ thuộc vào nền tảng) và có độ chính xác tối đa là 14 chữ số.
PHP có các hằng số được xác định trước sau đây cho float (từ PHP 7.2):
- PHP_FLOAT_MAX - Số dấu phẩy động có thể biểu diễn lớn nhất
- PHP_FLOAT_MIN - Số dấu phẩy động dương nhỏ nhất có thể biểu diễn được
- - PHP_FLOAT_MAX - Số dấu phẩy động âm nhỏ nhất có thể biểu diễn được
- PHP_FLOAT_DIG - Số chữ số thập phân có thể được làm tròn thành số float và ngược lại mà không bị mất độ chính xác
- PHP_FLOAT_EPSILON - Số dương nhỏ nhất có thể biểu diễn x, sao cho x + 1.0! = 1.0
PHP có các chức năng sau để kiểm tra xem kiểu của một biến có phải là float hay không:
- is_float ()
- is_double () - bí danh của is_float ()
Thí dụ
Kiểm tra xem loại biến có phải là float hay không:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
PHP Infinity
Giá trị số lớn hơn PHP_FLOAT_MAX được coi là vô hạn.
PHP có các chức năng sau để kiểm tra xem giá trị số là hữu hạn hay vô hạn:
Tuy nhiên, hàm var_dump () trong PHP trả về kiểu dữ liệu và giá trị:
Thí dụ
Kiểm tra xem giá trị số là hữu hạn hay vô hạn:
<?php
$x = 1.9e411;
var_dump($x);
?>
PHP NaN
NaN là viết tắt của Not a Number.
NaN được sử dụng cho các phép toán bất khả thi.
PHP có các chức năng sau để kiểm tra xem một giá trị có phải là một số không:
Tuy nhiên, hàm var_dump () trong PHP trả về kiểu dữ liệu và giá trị:
Thí dụ
Phép tính không hợp lệ sẽ trả về giá trị NaN:
<?php
$x = acos(8);
var_dump($x);
?>
Chuỗi số trong PHP
Hàm is_numeric () trong PHP có thể được sử dụng để tìm xem một biến có phải là số hay không. Hàm trả về true nếu biến là một số hoặc một chuỗi số, ngược lại là false.
Thí dụ
Kiểm tra xem biến có phải là số không:
<?php
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));
?>
Lưu ý: Từ PHP 7.0: Hàm is_numeric () sẽ trả về FALSE cho các chuỗi số ở dạng thập lục phân (ví dụ: 0xf4c3b00c), vì chúng không còn được coi là chuỗi số.
PHP Casting Strings và Floats to Integers
Đôi khi bạn cần truyền một giá trị số sang một kiểu dữ liệu khác.
Hàm (int), (integer) hoặc intval () thường được sử dụng để chuyển đổi một giá trị thành một số nguyên.
Thí dụ
Truyền float và string thành số nguyên:
<?php
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Cast string to int
$x =
"23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>