Ở bài học này, bạn sẽ học cách thực hiện các phép toán trong PHP và tìm hiểu về một số hàm toán học thông dụng nhất trong PHP.
1. Thực thi phép tính toán học trong PHP
PHP có một số hàm dựng sẵn (built-in functions) giúp bạn thực hiện mọi thứ từ các phép cộng hoặc phép trừ đơn giản đến các phép tính nâng cao.
Bạn đã biết cách thực hiện các hoạt động toán học cơ bản trong chương toán tử PHP. Hãy xem thêm một ví dụ nữa
<?php
echo 7 + 3; // 0utputs: 10
echo 7 - 2; // 0utputs: 5
echo 7 * 2; // 0utputs: 14
echo 7 / 2; // 0utputs: 3.5
echo 7 % 2; // 0utputs: 1
?>
Mỗi phép toán đều có một mức độ ưu tiên nhất định.
Phép nhân và phép chia được thực hiện trước khi cộng và trừ. Nếu bộ đôi phép Cộng và Trừ hoặc phép Nhân và Chia đặt cạnh nhau thì sẽ thực hiện theo thứ tự từ trái sang phải.
Tuy nhiên, dấu ngoặc đơn () có thể thay đổi quyền ưu tiên này.
Các biểu thức được đặt trong dấu ngoặc đơn luôn được đánh giá đầu tiên, bất kể mức độ ưu tiên của phép toán, như được minh họa trong ví dụ sau:
<?php
echo 5 + 4 * 10; // 0utputs: 45
echo (5 + 4) * 10; // 0utputs: 90
echo 5 + 4 * 10 / 2; // 0utputs: 25
echo 8 * 10 / 4 - 2; // 0utputs: 18
echo 8 * 10 / (4 - 2); // 0utputs: 40
echo 8 + 10 / 4 - 2; // 0utputs: 8.5
echo (8 + 10) / (4 - 2); // 0utputs: 9
?>
Phần tiếp theo chúng ta sẽ xem xét một số hàm PHP được tích hợp sẵn thường được sử dụng nhiều nhất để thực hiện các phép toán toán học.
2. Cách tìm giá trị tuyệt đối của một số trong PHP
Giá trị tuyệt đối của số nguyên hoặc số thực có thể được tìm thấy bằng hàm abs(), như được minh họa trong ví dụ sau:
<?php
echo abs(5); // 0utputs: 5 (integer)
echo abs(-5); // 0utputs: 5 (integer)
echo abs(4.2); // 0utputs: 4.2 (double/float)
echo abs(-4.2); // 0utputs: 4.2 (double/float)
?>
Như bạn có thể thấy nếu số đã cho là âm, giá trị trả về là dương. Nhưng, nếu số dương, hàm này đơn giản chỉ trả về số đó.
3. Cách làm tròn giá trị phân số lên hoặc xuống trong PHP
Hàm ceil() có thể được sử dụng để làm tròn lên một giá trị phân số lên đến giá trị số nguyên cao nhất tiếp theo.
Trong khi đó hàm floor() có thể được sử dụng để làm tròn xuống một giá trị phân số xuống giá trị số nguyên thấp nhất tiếp theo.
Xem ví dụ minh họa sau:
<?php
// Làm tròn lên
echo ceil(4.2); // 0utputs: 5
echo ceil(9.99); // 0utputs: 10
echo ceil(-5.18); // 0utputs: -5
// Làm tròn xuống
echo floor(4.2); // 0utputs: 4
echo floor(9.99); // 0utputs: 9
echo floor(-5.18); // 0utputs: -6
?>
4. Cách tìm căn bậc hai của một số trong PHP
Bạn có thể sử dụng hàm sqrt() để tìm căn bậc hai của một số dương.
Hàm này trả về giá trị đặc biệt là NAN cho các số âm. Đây là một ví dụ:
<?php
echo sqrt(9); // 0utputs: 3
echo sqrt(25); // 0utputs: 5
echo sqrt(10); // 0utputs: 3.1622776601684
echo sqrt(-16); // 0utputs: NAN
?>
5. Cách tạo số ngẫu nhiên trong PHP
Hàm rand() có thể được sử dụng để tạo số ngẫu nhiên.
Bạn có thể tùy ý chỉ định một phạm vi bằng cách chuyển các đối số tối thiểu, tối đa, như trong ví dụ sau:
<?php
// Generate some random numbers
echo rand() . "<br>";
echo rand() . "<br>";
// Generate some random numbers between 1 and 10 (inclusive)
echo rand(1, 10) . "<br>";
echo rand(1, 10) . "<br>";
?>
Nếu hàm rand() được gọi mà không có các đối số tối thiểu, tối thiểu tùy chọn, nó sẽ trả về một số giả ngẫu nhiên trong khoảng từ 0 đến getrandmax().
Hàm getrandmax() hiển thị giá trị ngẫu nhiên lớn nhất có thể, bằng 32767 trên nền tảng Windows.
Vì vậy, nếu bạn muốn yêu cầu phạm vi lớn hơn 32767, bạn có thể chỉ định min và max cho nó.
6. Cách chuyển đổi số thập phân (Dicimal) thành nhị phân (Binary) và ngược lại trong PHP
Hàm decbin() được sử dụng để chuyển đổi một số thập phân thành số nhị phân.
Trong khi đối tác của nó, hàm bindec() chuyển đổi một số từ nhị phân sang thập phân.
<?php
// Convert số thập phân thành số nhị phân
echo decbin(2); // 0utputs: 10
echo decbin(12); // 0utputs: 1100
echo decbin(100); // 0utputs: 1100100
// Convert nhị phân thành số thập phân
echo bindec(10); // 0utputs: 2
echo bindec(1100); // 0utputs: 12
echo bindec(1100100); // 0utputs: 100
?>
7. Cách chuyển đổi số thập phân (Dicimal) thành thập lục phân (Hexadecimal) và ngược lại trong PHP.
Hàm dechex() được sử dụng để chuyển đổi một số thập phân thành biểu diễn thập lục phân.
Trong khi đó, hàm hexdec() được sử dụng để chuyển đổi một chuỗi thập lục phân thành số thập phân.
<?php
// Convert số thập phân thành số thập lục phân
echo dechex(255); // 0utputs: ff
echo dechex(196); // 0utputs: c4
echo dechex(0); // 0utputs: 0
// Convert số thập lục phân thành số thập phân
echo hexdec('ff'); // 0utputs: 255
echo hexdec('c4'); // 0utputs: 196
echo hexdec(0); // 0utputs: 0
?>
8. Cách chuyển đổi số thập phân (Dicimal) thành số bát phân (Octal) và ngược lại trong PHP
Hàm decoct() được sử dụng để chuyển đổi một số thập phân thành biểu diễn bát phân.
Trong khi đó, hàm octdec() được sử dụng để chuyển đổi số bát phân thành số thập phân.
<?php
// Convert số thập phân thành số bát phân
echo decoct(12); // 0utputs: 14
echo decoct(256); // 0utputs: 400
echo decoct(77); // 0utputs: 115
// Convert số bát phân thành số thập phân
echo octdec('14'); // 0utputs: 12
echo octdec('400'); // 0utputs: 256
echo octdec('115'); // 0utputs: 77
?>
9. Cách chuyển đổi số từ hệ thống cơ sở này sang hệ thống khác trong PHP
Hàm base_convert() có thể được sử dụng để chuyển đổi một số từ hệ thống cơ sở này sang hệ thống cơ sở khác.
Ví dụ: Bạn có thể chuyển đổi thập phân (cơ sở 10) thành nhị phân (cơ sở 2), thập lục phân (cơ sở 16) sang bát phân (cơ sở 8), bát phân thành thập lục phân, thập lục phân thành thập phân, v.v.
Hàm này chấp nhận ba tham số:
- Số cần chuyển đổi
- Cơ sở hiện tại
- Cơ sở được chuyển đổi thành.
Cú pháp Hàm base_convert() cơ bản như sau:
base_convert(number, frombase, tobase);
Ở đây, số có thể là số nguyên hoặc chuỗi đại diện cho số nguyên.
Cả frombase và tobase phải nằm trong khoảng từ 2 đến 36, bao gồm:
Các chữ số có số cơ sở cao hơn 10 sẽ được biểu thị bằng các chữ cái a-z, trong đó a có nghĩa là 10, b có nghĩa là 11 và z có nghĩa là 35.
Đây là một ví dụ đơn giản để cho thấy chức năng này hoạt động như thế nào:
<?php
// Convert decimal to binary
echo base_convert('12', 10, 2); // 0utputs: 1100
// Convert binary to decimal
echo base_convert('1100', 2, 10); // 0utputs: 12
// Convert decimal to hexadecimal
echo base_convert('10889592', 10, 16); // 0utputs: a62978
// Convert hexadecimal to decimal
echo base_convert('a62978', 16, 10); // 0utputs: 10889592
// Convert decimal to octal
echo base_convert('82', 10, 8); // 0utputs: 122
// Convert octal to decimal
echo base_convert('122', 8, 10); // 0utputs: 82
// Convert hexadecimal to octal
echo base_convert('c2c6a8', 16, 8); // 0utputs: 60543250
// Convert octal to hexadecimal
echo base_convert('60543250', 8, 16); // 0utputs: c2c6a8
// Convert octal to binary
echo base_convert('42', 8, 2); // 0utputs: 100010
// Convert binary to octal
echo base_convert('100010', 2, 8); // 0utputs: 42
// Convert hexadecimal to binary
echo base_convert('abc', 16, 2); // 0utputs: 101010111100
// Convert binary to hexadecimal
echo base_convert('101010111100', 2, 16); // 0utputs: abc
?>
Lưu ý: Hàm base_convert() sẽ luôn trả về giá trị chuỗi.
Nếu giá trị được trả về nằm trong cơ sở 10, chuỗi kết quả có thể được sử dụng làm chuỗi số trong tính toán và PHP sẽ chuyển đổi nó thành số khi phép tính được thực hiện.
Tổng kết
Như vậy là bài này bạn đã tìm hiểu kỹ hơn về một số phép toán học trong PHP. Hãy ôn tập kỹ càng và ghi nhớ một số hàm toán học cơ bản này để viết chương trình PHP nhanh hơn nhé.