Hàm rand() trong PHP
Trần Thị Vân
- 1187
- 02/08/2025
Chức năng của Hàm rand() trong PHP
Hàm rand() trong PHP dùng để tạo ra một số ngẫu nhiên nằm trong khoảng min, max hoặc không nằm trong khoảng min, max.
Cú pháp của Hàm rand() trong PHP
Chọn số ngẫu nhiên không truyền tham số min, max
rand();
Chọn số ngẫu nhiên có truyền tham số min, max
rand(số_nhỏ_nhất,số_lớn_nhất);
số_nhỏ_nhất: Số ngẫu nhiên không nhỏ hơn số nhỏ nhất.
số_lớn_nhất: Số ngẫu nhiên không lớn hơn số lớn nhất.
Ví dụ Hàm rand() trong PHP
<h2>Chọn số ngẫu nhiên không truyền tham số min, max</h2>
<?php
echo rand(); // Kết quả ngẫu nhiên: 367242270
?>
<h2>Chọn số ngẫu nhiên có truyền tham số min, max</h2>
<?php
echo rand(0,100); // Kết quả ngẫu nhiên: 70
echo "<br>";
echo rand(90,100); // Kết quả ngẫu nhiên: 100
echo "<br>";
?>
Kết quả:
Chọn số ngẫu nhiên không truyền tham số min, max
367242270
Chọn số ngẫu nhiên có truyền tham số min, max
70
92
Những lưu ý khi tạo số ngẫu nhiên bằng rand() trong PHP
rand() phù hợp với nhiều nhu cầu tạo giá trị ngẫu nhiên đơn giản, chẳng hạn chọn một số trong khoảng nhất định, tạo dữ liệu mẫu hoặc thay đổi thứ tự hiển thị. Tuy nhiên, không nên xem mọi giá trị do rand() tạo ra đều thích hợp cho mục đích bảo mật.
rand() có phù hợp để tạo mã bảo mật và mật khẩu không?
Không nên dùng rand() để tạo mật khẩu, mã xác thực, mã đặt lại mật khẩu hoặc các chuỗi có vai trò bảo vệ tài khoản. Những dữ liệu này cần nguồn ngẫu nhiên có tính bảo mật cao hơn để hạn chế khả năng bị dự đoán.
Nếu cần tạo số ngẫu nhiên phục vụ bảo mật, PHP cung cấp random_int(). Hàm này được thiết kế cho các trường hợp cần giá trị khó dự đoán hơn.
<?php
$code = random_int(100000, 999999);
echo $code;
?>
Ví dụ trên có thể dùng để tạo một mã số ngẫu nhiên trong phạm vi từ 100000 đến 999999. Tuy nhiên, khi xây dựng hệ thống xác thực thực tế, ngoài việc chọn hàm phù hợp còn cần giới hạn thời gian sử dụng và số lần nhập mã.
Cách chọn khoảng giá trị khi sử dụng rand()
Khi gọi rand(), nên xác định rõ giới hạn nhỏ nhất và lớn nhất dựa trên dữ liệu cần tạo. Khoảng quá rộng có thể tạo ra giá trị không cần thiết, trong khi khoảng quá hẹp làm giảm số lượng kết quả có thể nhận được.
<?php
$number = rand(1, 100);
echo $number;
?>
Trong trường hợp chỉ cần một giá trị trong phạm vi cố định, việc truyền trực tiếp hai giới hạn giúp đoạn mã dễ đọc và thể hiện rõ ý định. Nếu giới hạn phụ thuộc vào dữ liệu khác, nên kiểm tra giá trị đầu vào trước khi đưa vào rand() để tránh tạo ra khoảng không hợp lệ.
Khi nào nên dùng random_int() thay cho rand()?
Nên cân nhắc random_int() khi số được tạo có liên quan đến bảo mật hoặc có thể ảnh hưởng đến quyền truy cập của người dùng. Đây là lựa chọn phù hợp hơn cho mã xác thực, số dùng trong quy trình bảo mật và các giá trị cần khó dự đoán.
Ngược lại, nếu chỉ tạo số ngẫu nhiên cho dữ liệu thử nghiệm, trò chơi đơn giản hoặc một lựa chọn không liên quan đến bảo mật, rand() có thể đáp ứng tốt mà không cần thay đổi sang hàm khác.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm rand() trong PHP.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *