PHP:代码解释帮助

PHP:代码解释帮助,php,Php,我不明白最后一行“}while($flip)”,有人能给我解释一下吗?我理解整个语句是为了实现代码,直到$flip为真。但是,为什么它在显示“T”时阻止代码重复 谢谢你的回答!当我遇到这个问题时,我正在通过codeacademy.com学习。if语句看起来像:if(expression) 表达式不需要是布尔值,只是可以转换为布尔值的东西 PHP手册中有关于的规则 在本例中,您正在生成整数。因此,如果它是0,那么它是FALSE,否则它是TRUE,$flip=rand(0,1)将给您一个1或0,因此

我不明白最后一行“}while($flip)”,有人能给我解释一下吗?我理解整个语句是为了实现代码,直到$flip为真。但是,为什么它在显示“T”时阻止代码重复


谢谢你的回答!当我遇到这个问题时,我正在通过codeacademy.com学习。

if语句看起来像:
if(expression)

表达式不需要是布尔值,只是可以转换为布尔值的东西

PHP手册中有关于的规则

在本例中,您正在生成整数。因此,如果它是
0
,那么它是
FALSE
,否则它是
TRUE

$flip=rand(0,1)
将给您一个10,因此该值将被分配给
$flip

现在你有了这个<代码>如果($flip)这里,1被视为true,0被视为false。因此,根据
$flip
的值,将执行
if
语句


要说清楚<代码>如果(1)为
如果(0)

每个值都可以隐式转换为布尔值
$foo==true
$foo
$foo==true==true
相同
$foo==true
$foo
的任何值强制转换为与
true
相当的值,这与直接强制
$foo
相同,无需将其与布尔值进行比较。请参阅以获取详尽的比较规则表。

来自php.net:()

转换为布尔值时,以下值被视为FALSE:

布尔值本身是假的

整数0(零)浮点0.0(零)

空字符串和字符串“0”

零元素数组

具有零成员变量的对象(仅限PHP 4)

特殊类型NULL(包括未设置的变量)

从空标记创建的SimpleXML对象

其他所有值均视为真(包括任何资源)


这是因为代码只检查非伪值,如零、空字符串ans等。
0=false
1=true
@웃웃웃웃웃 它不检查纯布尔值。它只检查除
0
'
之外的值$flip的值可能为“0”,但下注结果仍然为
false
。请在社区提问之前先用谷歌搜索。对于OP,在本上下文中,“强制”表示转换类型。所以我们有一个整数,将其更改为布尔值需要PHP遵循某些规则:1=true,0=false。字符串也有自己的规则(但此处不适用)。
<?php
$headCount = 0;
while ($headCount < 3) {
    $flip = rand(0,1);
    if ($flip){
        $headCount ++;
        echo "<div class=\"coin\">H</div>";
    }
    else {
        $headCount = 0;
        echo "<div class=\"coin\">T</div>";
    }
}
?>
//We will keep flipping a coin as long as the result is heads!
do {
    $flip = rand(0,1);
    if ($flip){
        echo $flip;
        echo "<div class=\"coin\">H</div>";
    }
    else {
        echo $flip;
        echo "<div class=\"coin\">T</div>";
    }
} while ($flip);