man*_*gir 7 php floating-point for-loop
我有一个像下面的for循环
<?php
for($i=0;$i<=10;$i+0.4){
echo $i."<br>";
}
?>
Run Code Online (Sandbox Code Playgroud)
此代码打印i的值直到9.6而不是10.
为什么它最后返回i = 10的值.
用于+=增加它,而不仅仅是加。就像现在一样,对我来说这是一个无限循环。
编辑:由于某种原因,PHP 无法在循环中的不同类型中正常工作。
下面这个应该可以工作
for($i=0;$i<=100;$i+=4){
echo $i/10."<br>";
}
Run Code Online (Sandbox Code Playgroud)
这是var_dump
int(0)
float(0.4)
float(0.8)
float(1.2)
float(1.6)
int(2)
float(2.4)
float(2.8)
float(3.2)
float(3.6)
int(4)
float(4.4)
float(4.8)
float(5.2)
float(5.6)
int(6)
float(6.4)
float(6.8)
float(7.2)
float(7.6)
int(8)
float(8.4)
float(8.8)
float(9.2)
float(9.6)
int(10)
Run Code Online (Sandbox Code Playgroud)
这可能是 PHP 的自动转换造成的