while($ variable)在PHP中意味着什么?

时间:2014-08-06 09:42:29

标签: php

我是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>";
?>

7 个答案:

答案 0 :(得分:6)

所有此类条件语句(包括whileif)都在针对true评估给定表达式。如果表达式导致true,则语句执行操作。如果它导致false,则不会。

$var == true是一个将$vartrue进行比较的表达式。 此表达式的结果为truefalse要理解的重要一点是表达式。表达式是返回值的内容。试试var_dump($var == true)var_dump(4 > 6)。它向您显示表达式返回一个布尔值。这里:

if ($var == true)

首先将$vartrue进行比较,得到值truefalse,然后由if评估它是否为true。 s falseif,然后提示if ($var) 执行以下语句。

换句话说:它是多余的。

if

这只会导致$var评估truefalse还是== 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本身最终只能是truefalse,您甚至不需要该语句,因为它的返回值也是那两个。

因此$variable$variable == true完全相同。

我希望这说清楚。

答案 2 :(得分:0)

布尔值truefalse不应与冗余$c == true一起使用,因为结果与$c相同:true或{{ 1}}

false

因此也使用形容词来表示布尔变量。

答案 3 :(得分:0)

while / do-while的语义是

   while(<boolean expression>) {
       // do your stuff
   }

布尔表达式评估truefalse的任何内容。因此,如果$loopCounttrue,则会在每个循环上检查$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) {
         }