Ở bài 2, “Biến trong PHP“, chúng ta đã tóm tắt qua về sự đa dạng của biến, cách gắn giá trị cho chúng và cách sử dụng. Trong bài này, bạn sẽ làm việc chi tiết với biến Numbers và sử dụng Numbers trong PHP.
Bài này sẽ bắt đầu với việc tạo một form HTML, form này sẽ gắn tính toán các biến số. Bạn sẽ học được cách format numbers, số học. Ngoài ra còn về các tạo một số tăng, giảm và cách tạo một số ngẫu nhiên. Hãy cùng bắt đầu nào!
Tạo Form
Chúng ta tạo một form để tính toán chi phí thanh toán cho một cửa hàng. Bao gồm giá cả, số lượng, khuyến mãi, thuế và phí ship.
Tạo Form HTML: calculator.html

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<!DOCTYPE html> <html> <head> <title>Tính Chi Phí Hàng</title> <meta charset="utf-8"> </head> <body> <div><p>Điền thông tin vào form này để tính chi phí</p></div> <form action="handle_calc.php"> <p>Giá tiền: <input type="text" name="price" size="5"></p> <p>Số lượng: <input type="text" name="quantity" size="5"></p> <p>Khuyến mãi: <input type="text" name="discount" size="5"></p> <p>Thuế: <input type="text" name="tax" size="3">(%)</p> <p>Phương thức Ship: <select name="shipping" id=""> <option value="5.00">Bình thường và cẩn thận</option> <option value="8.95">Nhanh hơn một chút</option> <option value="19.36">Tôi cần vào ngày mai</option> </select> </p> <p>Số lần thanh toán muốn thực hiện: <input type="text" name="payments" size="3"> </p> <input type="submit" name="submit" value="Tính toán!"> </form> </body> </html> |
Thực hiện Tính toán
Như được học từ trường học, toán học ở đây cũng bao gồm 4 phương pháp chính:
- Cộng (+)
- Trừ (-)
- Nhân (*)
- Chia (/)
Chúng ta sẽ tạo file PHP để tính tổng chi phí từ file form HTML bên trên.
Tạo file tính toán chi phí: handle_calc.php


Nhìn vào kết quả trên bạn cũng có thể thấy, số có vẻ hơn lẻ và hơn khó nhìn. Vậy chúng ta cần Format Numbers.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<!DOCTYPE html> <html> <head> <title>Tính Chi Phí Hàng</title> <meta charset="utf-8"> <style type="text/css"> .number{ font-weight: bold; } </style> </head> <body> <?php // Lấy giá trị được truyền sang bằng $_POST $price = $_POST['price']; $quantity = $_POST['quantity']; $discount = $_POST['discount']; $tax = $_POST['tax']; $shipping = $_POST['shipping']; $payments = $_POST['payments']; // Tính tổng chi phí $total = $price * $quantity; $total = $total + $shipping; $total = $total - $discount; // Xác định giá trị thuế $taxrate = $tax/100; $taxrate = $taxrate +1; // Tổng với thuế $total = $total * $taxrate; // Tính giá khi trả mỗi tháng $monthly = $total / $payments; // In kết quả tính toán print " <p>Bạn lựa chọn thanh toán cho:<br> <span class=\"number\">$quantity</span> cái với <br> $<span class=\"number\">$price</span> cho mỗi cái <br> $<span class=\"number\">$shipping</span> phí ship và <br> <span class=\"number\">$tax</span> phần trăm thuế <br> Sau khi trừ $<span class=\"number\">$discount</span> giảm giá, tổng chi phí là $<span class=\"number\">$total</span> <br> Chia cho $<span class=\"number\">$payments</span> lần trả, mỗi tháng bạn cần trả là $<span class=\"number\">$monthly</span> </p> " ?> </body> </html> |
Formatting Numbers
Để làm tròn số chúng ta có 2 cách đó là round() và number_format(). Để có thể hiểu hơn, bạn hãy xem ví dụ dưới đây:
round(4.30); // 4
round(4.289, 2); // 4.29
$num = 236.26985;
round($num);// 236
number_format(428.4959, 2); // 428.50
number_format(428, 2); // 428.00
number_format(123456789); // 123,456,789
Vậy bạn có thể thấy, round có tác dụng làm tròn số, number_fomat có tác dụng làm tròn số và định dạng hàng nghìn phân tách bởi dấu phẩy (,).
Áp dụng Format Numbers
Áp dụng Format numbers phần xử lý form, ta có:
$total = number_format ($total, 2);
$monthly = number_format ($monthly, 2);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<!DOCTYPE html> <html> <head> <title>Tính Chi Phí Hàng</title> <meta charset="utf-8"> <style type="text/css"> .number{ font-weight: bold; } </style> </head> <body> <?php // Lấy giá trị được truyền sang bằng $_POST $price = $_POST['price']; $quantity = $_POST['quantity']; $discount = $_POST['discount']; $tax = $_POST['tax']; $shipping = $_POST['shipping']; $payments = $_POST['payments']; // Tính tổng chi phí $total = $price * $quantity; $total = $total + $shipping; $total = $total - $discount; // Xác định giá trị thuế $taxrate = $tax/100; $taxrate = $taxrate +1; // Tổng với thuế $total = $total * $taxrate; // Tính giá khi trả mỗi tháng $monthly = $total / $payments; // Áp dụng Formatting $total = number_format ($total, 2); $monthly = number_format ($monthly, 2); // In kết quả tính toán print " <p>Bạn lựa chọn thanh toán cho:<br> <span class=\"number\">$quantity</span> cái với <br> $<span class=\"number\">$price</span> cho mỗi cái <br> $<span class=\"number\">$shipping</span> phí ship và <br> <span class=\"number\">$tax</span> phần trăm thuế <br> Sau khi trừ $<span class=\"number\">$discount</span> giảm giá, tổng chi phí là $<span class=\"number\">$total</span> <br> Chia cho $<span class=\"number\">$payments</span> lần trả, mỗi tháng bạn cần trả là $<span class=\"number\">$monthly</span> </p> " ?> </body> </html> |


Hiểu về quyền Ưu tiên
Viện Ưu tiên trong tính toán tức là thứ tự phép tính được thực hiện. Ví dụ như, giá trị của phép tính này là gì?
$number = 10 – 4 / 2;
Vậy $number là 3 ( 10 trừ 4 bằng 6, chia 2 bằng 3) hay là 8 (4 chia 2 bằng 2, 10 trừ 2 bằng 8) ? Câu trả lời là 8, bởi phép nhân chia luôn được ưu tiên hơn cộng trừ.
Tuy nhiên nếu bạn muốn dễ nhìn và dễ tính hơn, chúng ta có thể áp dụng dấu ngoặc tròn để thực hiện ưu tiên.
$number = (10 – 4) / 2; // 3
$number = 10 – 4 / 2; // 8
Áp dụng phần này vào phần tính toán trong file handle_calc.php. Chúng ta sẽ có như
1 2 3 4 5 6 7 8 |
// Tính tổng chi phí $total = $price * $quantity; $total = $total + $shipping; $total = $total - $discount; // Xác định giá trị thuế $taxrate = $tax/100; $taxrate = $taxrate +1; |
Thành
1 2 3 4 5 |
// Tính tổng chi phí $total = (($price * $quantity) + $shipping) - $discount; // Xác định giá trị thuế $taxrate = ($tax/100) + 1; |
File handle_calc.php sau khi áp dụng:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
<!DOCTYPE html> <html> <head> <title>Tính Chi Phí Hàng</title> <meta charset="utf-8"> <style type="text/css"> .number{ font-weight: bold; } </style> </head> <body> <?php // Lấy giá trị được truyền sang bằng $_POST $price = $_POST['price']; $quantity = $_POST['quantity']; $discount = $_POST['discount']; $tax = $_POST['tax']; $shipping = $_POST['shipping']; $payments = $_POST['payments']; // Tính tổng chi phí $total = (($price * $quantity) + $shipping) - $discount; // Xác định giá trị thuế $taxrate = ($tax/100) + 1; // Tổng với thuế $total = $total * $taxrate; // Tính giá khi trả mỗi tháng $monthly = $total / $payments; // Áp dụng Formatting $total = number_format ($total, 2); $monthly = number_format ($monthly, 2); // In kết quả tính toán print " <p>Bạn lựa chọn thanh toán cho:<br> <span class=\"number\">$quantity</span> cái với <br> $<span class=\"number\">$price</span> cho mỗi cái <br> $<span class=\"number\">$shipping</span> phí ship và <br> <span class=\"number\">$tax</span> phần trăm thuế <br> Sau khi trừ $<span class=\"number\">$discount</span> giảm giá, tổng chi phí là $<span class=\"number\">$total</span> <br> Chia cho $<span class=\"number\">$payments</span> lần trả, mỗi tháng bạn cần trả là $<span class=\"number\">$monthly</span> </p> " ?> </body> </html> |
Tăng và giảm một Số
Ta có, cấu trúc nhìn khá không đẹp như sau:
$tax = $tax + 1;
Khi bạn cần tăng hoặc giảm một đơn vị của giá trị bạn có thể dùng ++ hoặc —, như sau:
$var = 20; //
$var++; //21
$var++; //22
$var–; //21
Áp dụng vào trong form tính, ta chuyển:
1 2 |
// Xác định giá trị thuế $taxrate = ($tax/100) + 1; |
Thành
1 2 3 |
// Xác định giá trị thuế $taxrate = ($tax/100); $taxrate++; |
File handle_calc.php sau khi áp dụng:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<!DOCTYPE html> <html> <head> <title>Tính Chi Phí Hàng</title> <meta charset="utf-8"> <style type="text/css"> .number{ font-weight: bold; } </style> </head> <body> <?php // Lấy giá trị được truyền sang bằng $_POST $price = $_POST['price']; $quantity = $_POST['quantity']; $discount = $_POST['discount']; $tax = $_POST['tax']; $shipping = $_POST['shipping']; $payments = $_POST['payments']; // Tính tổng chi phí $total = (($price * $quantity) + $shipping) - $discount; // Xác định giá trị thuế $taxrate = ($tax/100); $taxrate++; // Tổng với thuế $total = $total * $taxrate; // Tính giá khi trả mỗi tháng $monthly = $total / $payments; // Áp dụng Formatting $total = number_format ($total, 2); $monthly = number_format ($monthly, 2); // In kết quả tính toán print " <p>Bạn lựa chọn thanh toán cho:<br> <span class=\"number\">$quantity</span> cái với <br> $<span class=\"number\">$price</span> cho mỗi cái <br> $<span class=\"number\">$shipping</span> phí ship và <br> <span class=\"number\">$tax</span> phần trăm thuế <br> Sau khi trừ $<span class=\"number\">$discount</span> giảm giá, tổng chi phí là $<span class=\"number\">$total</span> <br> Chia cho $<span class=\"number\">$payments</span> lần trả, mỗi tháng bạn cần trả là $<span class=\"number\">$monthly</span> </p> " ?> </body> </html> |
Ngoài ra, bạn cũng có thể áp dụng các phép toán khác như:
$num = $num + 5;
$num += 5;
Hay như:
$tax = $_POST[‘tax’]; // 5
$tax /= 100; // $tax bằng 0.05
$tax += 1 // 1.05
Tạo Số ngẫu nhiên
Function cuối cùng bạn học trong bài này là rand(), tạo số ngẫu nhiên.
$n = rand(); // 31
$n = rand(); // 87
Function rand() có thể giới hạn min và max của giá trị hay còn gọi là giới hạn khoảng giá trị:
$n = rand(0, 10);
Vậy giá trị ở đây sẽ chỉ ngẫu nhiền từ 0 cho đến 10.
Tạo số ngẫu nhiên
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<!DOCTYPE html> <html> <head> <title>Lucky Numbers</title> <meta charset="utf-8"> </head> <body> <?php // Tạo ba số ngẫu nhiên: $n1 = rand (1, 99); $n2 = rand (1, 99); $n3 = rand (1, 99); // In số: print "<p>Con số may mắn của bạn là: <br> $n1 <br> $n2 <br> $n3 <br> </p>" ?> </body> </html> |


Leave a Reply