我正在尝试将此as3代码转换为php,但它无法正常工作。我需要它像as3一样产生感谢!
PHP:
print(floor(rand() * 1000) + 3000);
结果:28240000
AS3:
var intCID = Math.floor(Math.random() * 1000) + 3000;
var strSessionId = String(intCID);
trace(strSessionId);
结果:3330
答案 0 :(得分:0)
PHP的rand()函数为您提供随机整数值,而不是float(十进制)值。因此,如果你做* 1000
,你会获得真正的巨大价值请务必查看PHP手册的rand()功能。您将看到可以为生成的随机数设置最小值和最大值,例如rand(1, 1000)
希望这有助于产生您的预期价值。
答案 1 :(得分:0)
您正在调用rand()
而没有参数,并且根据文档:
如果在没有可选的min,max参数的情况下调用,则rand()返回0和getrandmax()之间的伪随机整数
所以你应该改用它:
rand(0,1000)
答案 2 :(得分:0)
说明
int rand(void)
int rand(int $ min,int $ max)
如果在没有可选min的情况下调用,则max参数rand()返回0和getrandmax()之间的伪随机整数。例如,如果您想要5到15之间的随机数(包括),请使用rand(5,15)。
来源:http://php.net/manual/en/function.rand.php
使用:rand(0,1)
获得相同的结果
答案 3 :(得分:0)
您的AS3代码生成一个介于3000和4000之间的随机数,因此PHP中的等效代码为:
$rand = rand(3000, 4000);
答案 4 :(得分:0)
在PHP中,rand()
返回一个从0到getRandMax()
的值,通常为32767,并且是整数,因此对PHP rand()
的调用应该被模拟为此AS3代码:< / p>
Math.floor(Math.random()*32768) // returns 0..32767 as integer
PHP代码rand($min,$max)
由以下模拟:
Math.floor(Math.random()*(1+max-min))+min
但是,无论如何, NOT 期望PHP和AS3代码都返回完全相同的值。
答案 5 :(得分:0)