以下代码在PHP中的输出是什么?

以下代码在PHP中的输出是什么?,php,Php,没有分配范围。答案是 for($x++ ; $x==2 ; $x=2) print "In the for loop" ; print "After the loop" ; 我不知道这是怎么回事 In the for loop After the loop. 这是这些代码行的正确缩进 在这里,您可以看到for循环中的打印是为循环缩进的。其次,如果我们没有循环或条件的作用域,那么只有下一行是该作用域的一部分。如果你仔细查看,你会发现所有的表达式都是错误的- 对于$x++$x==2$x=2

没有分配范围。答案是

for($x++ ; $x==2 ; $x=2) 
print "In the for loop" ; 
print "After the loop" ;
我不知道这是怎么回事

In the for loop After the loop. 
这是这些代码行的正确缩进

在这里,您可以看到for循环中的打印是为循环缩进的。其次,如果我们没有循环或条件的作用域,那么只有下一行是该作用域的一部分。

如果你仔细查看,你会发现所有的表达式都是错误的-

对于$x++$x==2$x=2


第一个$x++0递增未定义变量会将其设置为1,因为在算术上下文中使用时,它会将null转换为0

第二个$x==2将返回false,并且不会执行迭代

第三个$x=2将在每次迭代结束时执行

因此,迭代永远不会执行,因为$x==2始终为false


并且输出将在循环之后

你说没有分配作用域是什么意思?代码不会在for循环中打印。增加未定义的变量会将其设置为1,因为在算术上下文中使用时,它会将null转换为0。谢谢@Barmar。我不知道与其说这些表达是错误的,不如说它们只是被误用了。它们是以一种非预期的方式进行的,或者以一种会产生意外结果的方式进行的。是的。同意你的意见!!第三个呢?$x=2。它是否会为$x赋值??是否$x值发生变化??
for($x++ ; $x==2 ; $x=2) 
    print "In the for loop" ; 
print "After the loop" ;