我对php中的以下代码感到困惑

时间:2017-08-08 05:12:50

标签: php

代码如下 -

<?php
$i = 5;
while (--$i > 0 || ++$i)
{   
    print $i;
}
?>

正确答案是4321111.......。但它怎么可能从4开始,它应该只是从5开始。在我看来,答案应该是55555555......

2 个答案:

答案 0 :(得分:4)

以4开头,因为首先评估此语句(--$i > 0 )

pre decrement,这意味着它先递减然后计算while循环

所以这里是checking whether i is greater than 0 or else increment i by 1

所以prints 4321,当我达到0时,--$i > 0语句不会被评估,因为我变为0所以评估或部分是+1

所以结果变成4321111111 .................

答案 1 :(得分:1)

如果你在循环语句中给出预递减运算符作为条件,它将以小于最初分配的值的一个开始。这就是它从4而不是5开始的原因。