Web Cơ Bản

Cách sử dụng số (number) trong PHP

- Trong bài hướng dẫn này, các bạn sẽ được tìm hiểu chi tiết hơn về số nguyên (Integer), số thực (Float), chuỗi số (Number String)

- Trước tiên, một điều mà các bạn cần phải lưu ý về PHP đó chính là nó cung cấp tính năng chuyển đổi kiểu dữ liệu tự động.

- Ví dụ: Nếu bạn gán một giá trị số nguyên cho một biến thì kiểu dữ liệu của biến đó sẽ tự động là một số nguyên. Sau đó, nếu bạn gán giá trị là một chuỗi cho cùng biến đó thì kiểu dữ liệu của biến đó sẽ tự động chuyển lại thành kiểu chuỗi.

==> Việc chuyển đổi tự động này đôi khi có thể phá vỡ mã của bạn.

Số nguyên (Integer) trong PHP

- Số nguyên là một số không có phần thập phân, nó phải nằm trong phạm vi từ -2147483648 & 2147483647. Nếu giá trị lớn hơn (hoặc nhỏ hơn) giá trị này thì nó sẽ được lưu dưới dạng số thực (float), bởi 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 phải biết là ngay cả khi 4*2.5 bằng 10 thì kết quả vẫn được lưu dưới dạng số thực, bởi vì một trong các toán hạng là một số thực (2.5)

- Dưới đây là các quy tắc dành 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.
  • Một số nguyên có thể thuộc một trong số các hệ thập phân (cơ số 10), hệ thập lục phân (cơ số 16), hệ bát phân (cơ số 8), hệ nhị phân (cơ số 2)

- Gợi ý: Để kiểm tra kiểu dữ liệu của một biến (giá trị) có phải là số nguyên hay không thì chúng ta có thể sử dụng các hàm như is_int() is_integer() is_long()

<?php
	$a = 6530;
	var_dump(is_int($a));

	$b = 65.30;
	var_dump(is_int($b));

	$c = 4*2.5;
	var_dump(is_int($c));
?>

Số thực (Float) trong PHP

- Số thực là một số có phần thập phân, hoặc một số ở dạng số mũ.

- Kiểu dữ liệu số thực thường có thể lưu trữ giá trị lên đến 1.7976931348623E+308 (tùy thuộc vào nền tảng) và có độ chính xác tối đa là 14 chữ số.

- Gợi ý: Để kiểm tra kiểu dữ liệu của một biến (giá trị) có phải là số thực hay không thì chúng ta có thể sử dụng các hàm như is_float() is_double()

<?php  
	$a = 35.25;
	$b = 7e5; //tương đương 7x105
	var_dump($a);
	echo "<br>";
	var_dump($b);
?> 

Số vô cực, vô hạn (Infinity) trong PHP

- Nếu một số có giá trị lớn hơn PHP_FLOAT_MAX thì nó được coi là vô hạn.

- Để kiểm tra một số là “hữu hạn” hay “vô hạn” thì ta có thể sử dụng hàm is_finite() hoặc is_infinite()

<?php
	$a = 10e500;
	var_dump(is_infinite($a));
?>

Không phải một số (NaN)

- NaN là chữ viết tắt của Not a Number (không phải một số)

- NaN được sử dụng cho các phép toán bất khả thi.

- Để kiểm tra một giá trị có phải là “không phải một số” hay không thì ta sử dụng hàm is_nan()

<?php
	$a = acos(8);
	var_dump($a);
?>

Chuỗi số (Number String) trong PHP

- Hàm is_numeric() trong PHP có thể được sử dụng để kiểm tra xem một biến (giá trị) có phải là một số hay không, hàm sẽ trả về TRUE nếu là một số hoặc chuỗi số, ngược lại là FALSE.

<?php
	$a = 8375;
	var_dump(is_numeric($a));

	$a = "8375";
	var_dump(is_numeric($a));

	$a = "83.75" + 100;
	var_dump(is_numeric($a));

	$a = "Developer";
	var_dump(is_numeric($a));
?>

- Lưu ý: Từ phiên bản PHP 7.0 trở về sau, hàm is_numeric() sẽ trả về FALSE cho các chuỗi số ở dạng thập lục phân (ví dụ như 0xf4c3b00a), bởi vì chúng không còn được coi là chuỗi số.

Chuyển đổi chuỗi số (hoặc số thực) sang số nguyên

- Đôi khi chúng ta cần chuyển một giá trị số sang một kiểu dữ liệu khác.

- Cá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.

<?php
	$a = 46583.65;
	$b = (int)$a;
	var_dump($b);

	$x = "46583.65";
	$y = (int)$x;
	var_dump($y);
?>