PHP while循环使用rand()和if语句为rand

时间:2015-05-21 09:31:57

标签: php

这是我的第一篇文章。 我很抱歉这个完全业余的问题,但我想学习PHP,所以我开始做一些在线课程 - PHP教程,有一个例子没有解释,我在谷歌找不到答案。

在代码行4 $ flip = rand(0,1);这意味着$ flip正在获得0或1的随机数? 然后在第6行有if($ flip){... 但他们没有解释“if($ flip)”的意思或等同。 例如$ flip = 1或$ flip = 0.先谢谢你。

$headCount = 0;
$flipCount = 0;
while ($headCount < 3) {
    $flip = rand(0,1);
    $flipCount ++;
    if ($flip){
        $headCount ++;
        echo "<div class=\"coin\">H</div>";
    }
    else {
        $headCount = 0;
        echo "<div class=\"coin\">T</div>";
    }
}
echo "<p>It took {$flipCount} flips!</p>";

3 个答案:

答案 0 :(得分:1)

基本上在PHP中,表达式被计算为其布尔值。例如

if($flip) // means if(1) or if(0)

if (expr)
  statement
  

0:被评估为布尔值FALSE

if($flip){

} 
else { 
  // goes here
} 
  

1:被评估为布尔值TRUE(非零)

if($flip){
  // goes here
} 
else { 

} 

如果第一个表达式的值为TRUE(非零),则进入if块

答案 1 :(得分:0)

等于0的变量表示false,其他数字表示true

if(0) => false // you go in the else statement
if(1) => true
if(2) => true

等...

事实上,当你执行if($flip)时,PHP执行的测试是if($flip != 0)

答案 2 :(得分:0)

你的第一个假设是正确的:

$flip = rand(0,1);

$flip将等于0或1.例如:

$flip = rand(0,5);

将随机返回0到5之间的数字。

通常,如果您执行if语句,则

if($example)

您正在测试该值是true还是false。 True也可以表示为1,false也可以表示为0。

因此,当$flip等于0或1时,它等于true或false。因此,如果flip为true或1,则它将执行if语句中的代码。作为一个注释,你可以通过使用:

来测试if的工作方式
if(!$flip)

如果$flip大于0,则有效地认为是真的,请参阅下面的示例:

$test = 0;
if($test) //This will be false and therefore echo It is false
{
  echo "It is true";
}
else
{
  echo "It is false";
}

$test2 = 5;
if($test2) //This will be true and therefore echo It is true
{
  echo "It is true";
}
else
{
  echo "It is false";
}

<强>更新

您可以认为以下内容实际上是相同的:

  if($flip)
  if($flip == 1 || $flip == true || $flip > 0)