从PHP 5.4开始,rand()和mt_rand()之间的区别是什么?

时间:2014-07-25 03:50:39

标签: php

根据官方文档,mt_rand()应该比rand()快四倍。

但在我阅读this article之后声称两者之间没有明显差异,我tried this on Google App Engine(PHP 5.4)。结果几乎相同。

那么,对于PHP 5.4及之后的rand()和mt_rand()有什么区别?如何确定使用哪一个?

3 个答案:

答案 0 :(得分:1)

比眨眼快四倍仍然是眨眼。特别考虑到它是解释语言中的内置函数,性能不应该是它最独特的特性。

根据the documentation

  
    

默认情况下,PHP使用带有rand()函数的libc随机数生成器。 mt_rand()函数是替代它的替代品。 它使用具有已知特征的随机数生成器,使用Mersenne Twister,它将产生比平均libc rand()提供的速度快四倍的随机数。

  

答案 1 :(得分:0)

使用mt_rand(),您可以像生成php中的rand()函数一样生成随机数。mt_rand()在我看来会更快一点..

请在这里阅读.. http://en.code-bude.net/2013/01/06/php-rand-vs-mt_rand-what-is-more-accurate-what-is-faster/

答案 2 :(得分:0)