Php 为什么增量后和增量前在这里相等?
当我尝试使用下面的代码作为$j的后增量或预增量时,结果总是一样的。你知道为什么吗?请告诉我。多谢各位Php 为什么增量后和增量前在这里相等?,php,increment,post-increment,pre-increment,Php,Increment,Post Increment,Pre Increment,当我尝试使用下面的代码作为$j的后增量或预增量时,结果总是一样的。你知道为什么吗?请告诉我。多谢各位 <?php $j = 1; while( $j < 20 ) { $j++; echo "1 * $j is equal to $j <br/>"; } ?> 在此代码中: $j = 1; while( $j < 20 ) { $j++; echo "1 * $j is equal to $j <br/>"; }
<?php
$j = 1;
while( $j < 20 ) {
$j++;
echo "1 * $j is equal to $j <br/>";
}
?>
在此代码中:
$j = 1;
while( $j < 20 ) {
$j++;
echo "1 * $j is equal to $j <br/>";
}
$j
将在其值与20进行比较后递增。此循环将在2到19的输出中显示$j
的值
如果你写
$j = 1;
while( ++$j < 20 ) {
echo "1 * $j is equal to $j <br/>";
}
$j=1;
而(++$j<20){
echo“1*$j等于$j
”;
}
在将$j
与20进行比较之前,$j
的值将增加。此循环将在2到20的输出中显示$j
的值
这是因为现在,
$j
是一个更大表达式的一部分,其中增量顺序很重要。在这个代码$j=1中,我们初始化,然后检查条件,它满足条件,然后它增加$j=2的值,现在$j的原始值是2。因此,在echo语句中,1*$j等于$j意味着1*2等于2。
像这样,所有的迭代将一直进行到循环结束。
就像我们使用的相同情况下的预增量将首先发生值增量,然后通过原始值计算相同的输出,因为
$j++
本身在一行上。它不是在$j
增量之前或之后出现的另一个表达式的一部分。当它自己在一行上时$j++
和+$j代码>做同样的事情。问自己:“在什么之前增加”或“在什么之后增加”?现在,如果您使用while($j++<20)
,那么将$j
的值与20进行比较后,它将递增。然而,如果您在编写while(+++$j<20)
时将$j
的值增加,然后将$j
与20进行比较。这是因为现在,$j
是一个更大的表达式的一部分,在这个表达式中,顺序很重要。@潜伏者最好的详细解释。谢谢你的解释。谢谢你的详细解释。所以问题是,当在逻辑中使用post和pre increment时,它们的值会不同,如果它们用作一条线,那么它们的值不会不同,对吗?@M.SShohan是的。pre-或post-increment是指在对其中的表达式进行求值时使用它之前或之后。如果表达式只是$j
,那么显然它没有效果。如果您认为我的答案可以接受,请在有机会时将其标记为已接受。:)在这两种情况下,该值将不同,因为它取决于在逻辑语句之前或之后使用该语句或行的位置
$j = 1;
while( ++$j < 20 ) {
echo "1 * $j is equal to $j <br/>";
}