我是PHP新手,目前正在从教程构建一个do / while循环。我会理解整个条件是($variable == true)
还是($variable == false)
,但是在教程中,while
条件只是while($variable)
。有谁能解释一下这个?
这是教程代码。
<?php
$loopCond = false;
do {
echo "<p>The loop ran even though the loop condition is false.</p>";
} while ($loopCond);
echo "<p>Now the loop is done running.</p>";
?>
答案 0 :(得分:6)
所有此类条件语句(包括while
和if
)都在针对true
评估给定表达式。如果表达式导致true
,则语句执行操作。如果它导致false
,则不会。
$var == true
是一个将$var
与true
进行比较的表达式。 此表达式的结果为true
或false
。要理解的重要一点是表达式。表达式是返回值的内容。试试var_dump($var == true)
或var_dump(4 > 6)
。它向您显示表达式返回一个布尔值。这里:
if ($var == true)
首先将$var
与true
进行比较,得到值true
或false
,然后由if
评估它是否为true
。 s false
或if
,然后提示if ($var)
执行以下语句。
换句话说:它是多余的。
if
这只会导致$var
评估true
是false
还是== true
,然后执行以下语句。 if ($var)
if ($var == true)
if (($var == true) == true)
if ((($var == true)) == true) == true)
...
基本上已经&#34;内置&#34;。
以下陈述基本上是等同的:
{{1}}
答案 1 :(得分:0)
如果条件中的值或语句被视为真,则满足条件。
代码$variable == true
是一个查看变量值是否为真的语句,如果是,则产生true
- 如果不是,则产生false
。
但是,这意味着,$variable
本身最终只能是true
或false
,您甚至不需要该语句,因为它的返回值也是那两个。
因此$variable
与$variable == true
完全相同。
我希望这说清楚。
答案 2 :(得分:0)
布尔值true
或false
不应与冗余$c == true
一起使用,因为结果与$c
相同:true
或{{ 1}}
false
因此也使用形容词来表示布尔变量。
答案 3 :(得分:0)
while / do-while的语义是
while(<boolean expression>) {
// do your stuff
}
布尔表达式是评估到true
或false
的任何内容。因此,如果$loopCount
为true
,则会在每个循环上检查$loopCount == true
并对true
进行评估。但你也可以写$ LoopCount
作为条件,因为它也评估为真。
这对于使用其他数据类型非常方便,例如:整数。
$count = 0;
while ($count < 10) {
$count = $count +1;
}
此处$count < 10
是一个布尔表达式,只要true
不高于9,就会计算为$count
。
只要符合条件,就会运行while循环,换句话说,只要您提供的布尔表达式评估为true
。< / p>
您也可以使用变量,例如$loopCount
当该变量的计算结果为 boolean 或常量(即使是常量值true
)。
答案 4 :(得分:0)
与Padarom一样说:因此$ variable与$ variable == true完全相同。
在您的情况下:while-do循环确定在第一次运行后是否重做循环体。意味着无论$ variable具有什么值,循环体都只执行一次。第一次运行后,while($variable)
检查表达式是否为true
。如果是这样,循环体将第二次执行,依此类推。
在此处检查do-while循环的PHP参考。 PHP.net do-while reference
答案 5 :(得分:-1)
while ($loopCond)
和while ($loopCond == true)
是一回事。它会检查您放在括号中的任何内容的“真实性”。
答案 6 :(得分:-3)
如果我问一个问题&#34;太阳落山西边? &#34;什么是你的答案,绝对是或正确。与编译器一样始终查找语句值。看看
$condition = true;
if($condition == true )
// above will return TRUE; in short $condition == true will replaced by true at runtime. But if we place true directly which is $condition value or can say we place $condition instead true thus statement become shorten and look like...
if($condition) {
}