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