为什么这段代码是无限循环?

1 php infinite-loop while-loop

在完成此代码之前,我只是错误地测试了它,并意识到它不会停止:

$var = "any"; 
for ($i=1; $i < 2; $i++){ 
    $var.$i = "any"; 
}
Run Code Online (Sandbox Code Playgroud)

为什么会产生无限循环?为什么PHP不会产生错误?

小智 5

我做了一个简单的测试:

echo $i;
 $var.$i = "any";
var_dump($var);
Run Code Online (Sandbox Code Playgroud)

结果:

1string(3) "any"
anzstring(3) "any"
Run Code Online (Sandbox Code Playgroud)

所以$ i被转换为"anz"并且没有通过验证以退出循环.

$ var.$ i ="any"; 是不是真的正确,我不知道你想要做什么,但如果你想填补和阵列你应该做更多的事情:

$var = array();
for ($i=1; $i < 2; $i++){ 
 $var[] = "any";
}
Run Code Online (Sandbox Code Playgroud)

如果您想逐字母更改字符串:

$var = "any";
    for ($i=1; $i < 2; $i++){ 
     $var[$i] = "a"; // asign a new letter to the string at the $i position
    }
Run Code Online (Sandbox Code Playgroud)