帮助理解JS

时间:2010-04-08 20:28:13

标签: php math function javascript

我有一段代码:

Math&&Math.random?Math.floor(Math.random()*10000000000000):Date.getTime();

据我所知&&是AND的逻辑运算符,所以我试图将其转换为PHP,这就是我得到的地方:

intval(floor(time()/10800000)%10+(rand()?floor(rand()*10000000000000):time()))

问题是我无法理解第一部分

Math&&

任何人都可以帮助解决这个原因我总是得到负面结果,当我应该得到肯定的时候(可能逻辑兰特时间在我的php示例中不起作用)

4 个答案:

答案 0 :(得分:3)

这是确保Math类在浏览器中可用的测试。你在PHP中不需要它。第二个子句检查以确保Math.random方法可用。它使用它,如果它是,并使用时间,如果不是。

在PHP中,只需使用rand()。 http://us2.php.net/rand

答案 1 :(得分:1)

可能只是三元运算符会让你失望。

http://en.wikipedia.org/wiki/Ternary_operation

答案 2 :(得分:0)

这是测试Math变量是否为非null / undefined的测试。我以前从未见过它,但我认为如果由于某种原因,Mathnull(尽管我无法想象为什么会发生这种情况)会阻止错误。

答案 3 :(得分:0)

在那里,您的Javascript代码是:

  • 测试Math对象是否存在
    • 使用random方法
  • 如果是,则使用它生成随机值
  • 否则,使用日期作为后备来获取随机值


在您的PHP代码中,您知道存在rand()mt_rand(); 无需测试是否; - )

这意味着测试和条件无用,并且您不需要在PHP中重新编码它们:只需将部分保留在原始代码中的?:之间。