Số trong PHP - PHP Numbers
PHP cung cấp sự chuyển đổi kiểu dữ liệu tự động. Nghĩa là, nếu bạn gán một giá trị số nguyên cho một biến, kiểu dữ liệu của biến đó sẽ tự động trở thành kiểu số nguyên. Sau đó, nếu bạn gán một chuỗi cho biến đó, kiểu dữ liệu sẽ thay đổi thành kiểu chuỗi. Chuyển đổi tự động này có thể gây lỗi nếu không được quản lý cẩn thận.
Kiểu số nguyên - PHP Integers
Số nguyên là số không có phần thập phân, ví dụ: 2, 256, -256, 10358, -179567.
Kiểu dữ liệu số nguyên là các số không có phần thập phân và nằm trong khoảng từ -2147483648 đến 2147483647 trên các hệ thống 32 bit, và từ -9223372036854775808 đến 9223372036854775807 trên các hệ thống 64 bit. Giá trị nào lớn hơn (hoặc nhỏ hơn) giới hạn này sẽ được lưu trữ dưới dạng số thực (float) vì vượt quá giới hạn của số nguyên.
PHP có các hằng số được định nghĩa sẵn sau:
- 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 kiểu số nguyên trong byte.
Có các hàm kiểm tra kiểu dữ liệu của biến xem có phải là số nguyên hay không:
- is_int()
- is_integer() (giống như is_int())
- is_long() (giống như is_int())
Ví dụ:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
Kiểu Số Thực - PHP Floats
Số thực (float) là số có phần thập phân hoặc ở dạng mũ.
Số thực có thể lưu trữ giá trị lên đến 1.7976931348623E+308 (tuỳ thuộc vào nền tảng), và có độ chính xác tối đa 14 chữ số.
PHP có các hằng số được định nghĩa sẵn sau (từ PHP 7.2):
- PHP_FLOAT_MAX: Số thực lớn nhất có thể biểu diễn.
- PHP_FLOAT_MIN: Số thực dương nhỏ nhất có thể biểu diễn.
- PHP_FLOAT_DIG: Số chữ số thập phân có thể làm tròn vào số thực mà không bị mất độ chính xác.
- PHP_FLOAT_EPSILON: Số nhỏ nhất có thể biểu diễn mà khi cộng thêm 1.0 không trả về 1.0.
Có các hàm kiểm tra kiểu dữ liệu của biến xem có phải là số thực hay không:
- is_float()
- is_double()
Ví dụ:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
Số Vô Cực - PHP Infinity
Một giá trị số lớn hơn PHP_FLOAT_MAX được coi là vô cực.
PHP có các hàm kiểm tra xem một giá trị số có hữu hạn hay vô cùng:
- is_finite()
- is_infinite()
Ví dụ:
<?php
$x = 1.9e411;
var_dump($x);
?>
NaN trong PHP - PHP NaN
NaN viết tắt cho "Not a Number" (Không phải là một số).
NaN được sử dụng để biểu diễn các phép toán toán học không hợp lệ.
PHP có hàm kiểm tra xem một giá trị có phải là NaN hay không:
- is_nan()
Ví dụ:
<?php
$x = acos(8);
var_dump($x);
?>
Chuỗi Số trong PHP - PHP Numerical Strings
Hàm is_numeric() trong PHP có thể được sử dụng để kiểm tra xem một biến có phải là số hay không. Hàm này trả về true nếu biến đó là một số hoặc chuỗi số, ngược lại trả về false.
Ví dụ:
<?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 trở đi, hàm is_numeric() sẽ trả về FALSE đối với 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ố. |
Ép kiểu chuỗi và số thực thành số nguyên trong PHP
Đôi khi, bạn cần ép kiểu một giá trị số thành kiểu dữ liệu khác. Cách thường được sử dụng để chuyển đổi giá trị thành số nguyên là sử dụng các cú pháp như (int), (integer), hoặc hàm intval().
Ví dụ:
<?php
// Ép kiểu số thực thành số nguyên
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Ép kiểu chuỗi thành số nguyên
$x = "23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>
Với hiểu biết về kiểu số nguyên, kiểu số thực, chuỗi số, và cách kiểm tra kiểu dữ liệu, bạn có thể làm việc với các loại số và chuỗi số trong PHP một cách hiệu quả. Điều này sẽ giúp bạn xây dựng ứng dụng PHP mạnh mẽ và linh hoạt hơn.