<?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>";
}
}
?>
大家好我理解除第5行if ($flip){
部分之外的代码为什么不需要正确定义条件,例如if($flip==1)
,我们可以写{{1 }}?
我的另一个问题如下:
if($flip)
我不明白最后一行“} while($ flip)”,有人能解释一下吗?我理解整个声明,以实现代码,直到$ flip为真。但是,为什么它会在显示“T”时停止重复代码?
谢谢你的回答!当我遇到这个问题时,我正在通过codeacademy.com学习。
答案 0 :(得分:3)
if语句如下:if (expression)
。
表达式不需要是布尔值,只需要转换为一个布尔值。
PHP手册具有converting to booleans的规则。
在这种情况下,您将生成整数。因此,如果它是0
,那么它是FALSE
,否则它是TRUE
。
答案 1 :(得分:1)
$flip = rand(0,1);
将为您提供 1 或 0 ,因此该值将分配给$flip
。< / p>
现在你有了这个.. if($flip)
,1被认为是真,0被认为是假。因此,根据$flip
的值,将执行if
语句。
要说清楚...... if(1)
true 而if(0)
false
答案 2 :(得分:1)
每个值都可以隐式转换为布尔值true
或false
。 $foo == true
与$foo
相同,与$foo == true == true
相同。 $foo == true
强制将任何值$foo
强制转换为与true
相当的内容,这与直接强制$foo
相同,而无需将其与布尔值进行比较。有关详尽的比较规则表,请参阅http://www.php.net/manual/en/types.comparisons.php。
答案 3 :(得分:0)
来自php.net:(http://www.php.net/manual/en/language.types.boolean.php)
转换为布尔值时,以下值被视为FALSE:
布尔值FALSE本身
整数0(零)浮点数0.0(零)
空字符串,字符串“0”
零元素的数组
一个零成员变量的对象(仅限PHP 4)
特殊类型NULL(包括未设置的变量)
从空标签创建的SimpleXML对象
其他每个值都被视为TRUE(包括任何资源)。