Trong chương này, chúng ta sẽ tìm hiểu sâu về kiểu integer, float và cách ép kiểu, ...
Một điều cần chú ý về PHP là nó cung cấp chuyển đổi kiểu dữ liệu tự động.
Vì vậy, nếu bạn gán một giá trị kiểu số nguyên cho một biến, kiểu dữ liệu của biến đó sẽ tự động là kiểu số nguyên.
Sau đó, nếu bạn tiếp tục gán một chuỗi cho cùng một biến đó, kiểu dữ liệu sẽ thay đổi thành kiểu chuỗi.
Việc chuyển đổi kiểu dữ liệu tự động này đôi khi có thể phá vỡ mã của bạn.
Một số nguyên (integer) là một số không có phần thập phân.
2, 256, -256, 10358, -179567 đều là các số nguyên. Trong khi 7.56, 10.0, 150.67 là các số thập phân.
Kiểu dữ liệu số nguyên là một số không thập phân có giá trị trong khoảng từ -2147483648 đến 2147483647.
Một giá trị lớn hơn (hoặc nhỏ hơn) so với giá trị này, sẽ được lưu dưới dạng float, vì nó vượt quá giới hạn của một số nguyên.
Một điều quan trọng khác cần biết là ngay cả khi 4 * 2.5 = 10 thì kết quả được lưu dưới dạng float, bởi vì một trong các toán hạng là kiểu float (2.5).
Dưới đây là một số quy tắc cho số nguyên:
PHP có các hàm sau để kiểm tra xem kiểu dữ liệu của biến có phải là số nguyên không:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
Đây là kết quả:
bool(true)
bool(false)
Kiểu dữ liệu float là một số có dấu thập phân hoặc số ở dạng số mũ.
2.0, 256.4, 10.358, 7.64E + 5, 5.56E-5 đều là kiểu dữ liệu float.
Kiểu dữ liệu float có thể lưu trữ giá trị lên tới 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àm sau để kiểm tra xem kiểu dữ liệu của biến có phải là float không:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
Đây là kết quả:
bool(true)
Một số có giá trị lớn hơn PHP_FLOAT_MAX được coi là vô hạn.
PHP có các hàm sau để kiểm tra xem một giá trị số là hữu hạn hay vô hạn:
Tuy nhiên, hàm var_dump () của PHP trả về kiểu dữ liệu và giá trị:
<?php
$x = 1.9e411;
var_dump($x);
?>
Đây là kết quả:
float(INF)
NaN là viết tắt của Not a Number (không phải là số). NaN được sử dụng cho các phép tính toán học không thể thực hiện.
PHP có hàm is_nan()
để kiểm tra xem giá trị không phải là số. Ở ví dụ dưới đây, hàm var_dump()
của PHP trả về kiểu dữ liệu và giá trị:
<?php
$x = acos(8);
var_dump($x);
?>
Đây là kết quả:
float(NAN)
Hàm is_numeric()
của 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.
<?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));
?>
Đây là kết quả:
bool(true)
bool(true)
bool(true)
bool(false)
Lưu ý: Từ PHP 7.0 hàmis_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ố.
Đôi khi bạn cần ép kiểu một giá trị thành một kiểu dữ liệu khác.
Hàm (int), (integer), hoặc intval() thường được sử dụng để ép kiểu một giá trị thành một kiểu 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;
?>
Đây là kết quả:
23465
23465
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Hướng dẫn lập trình PHP toàn tập sẽ giúp bạn từng bước tìm hiểu và nắm vững ngôn ngữ lập trình PHP.
Hướng dẫn cách truy xuất, lọc, sắp xếp dữ liệu MySQL trong PHP sử dụng MySQLi và PDO.
MySQL prepared statements trong PHP rất hữu ích để chống lại các cuộc tấn công SQL Injection.
Hướng dẫn này sẽ giúp bạn tìm hiểu cách thêm dữ liệu vào MySQL sử dụng MySQLi và PDO trong PHP.