【发布时间】:2017-10-28 22:47:50
【问题描述】:
作为php.net indicates: random_int() 函数生成加密安全的伪随机整数。
但是,有人能解释一下rand() 和random_int() 之间的区别吗?当只需要一个随机整数时,我可以使用random_int() 而不是rand() 吗?哪个更快?
【问题讨论】:
-
php.net/manual/en/function.random-int.php "返回一个加密的安全随机整数,范围从 min 到 max,包括。" 和 php.net/manual/en/function.rand.php "此函数不生成加密安全值”
-
使用
rand(),除非你需要一个安全的随机整数,然后使用random_int()。如果你不知道你是否需要后者,你可能不需要(它会影响“可猜测性”,所以想象一下它在哪里有用)。例如,如果您尝试随机播放幻灯片,rand()就可以了。 -
关于速度的事情,除非你知道你需要它,否则不要在此基础上过早优化。专注于函数的应用,然后在必要时调整效率。
-
mt_rand()在 PHP 7.1 中取代了rand()。只是想知道为什么没有提到?