PHP中以下代码的输出将是啥? [关闭]
Posted
技术标签:
【中文标题】PHP中以下代码的输出将是啥? [关闭]【英文标题】:what will be the output of following code in PHP? [closed]PHP中以下代码的输出将是什么? [关闭] 【发布时间】:2018-02-16 23:04:21 【问题描述】:for($x++ ; $x==2 ; $x=2)
print "In the for loop" ;
print "After the loop" ;
没有分配范围。答案是
In the for loop After the loop.
我不知道它是怎么回事。?
【问题讨论】:
“没有分配范围”是什么意思? 代码不会打印在for循环中。 【参考方案1】:如果你通过for你会发现所有的表达都是错误的-
对于for($x++ ; $x==2 ; $x=2)
第一个
$x++
0
。 - 增加一个未定义的变量将其设置为 1,因为它在算术上下文中使用时会将 null 转换为 0..第二个
$x==2
将返回false
并且不会执行迭代。第三个
$x=2
将在每次迭代结束时执行。
因此,迭代将永远不会执行,因为$x==2
始终是false
。
并且输出将是循环之后
【讨论】:
递增一个未定义的变量会将其设置为1
,因为当它用于算术上下文时,它会将null
转换为0
。
谢谢@Barmar。不知道。 :)
与其说表达式是错误的,不如说它们只是被滥用了。它们以非预期的方式完成,或者以会产生意想不到的结果的方式完成。
是的。同意你的看法!
第三个 $x=2 怎么样。它会为 $x 赋值吗??$x 的值会改变吗??【参考方案2】:
for($x++ ; $x==2 ; $x=2)
print "In the for loop" ;
print "After the loop" ;
这些代码行的缩进是正确的。
在这里您可以看到print "In the for loop"
为循环缩进。其次,如果我们没有loop
或condition
的范围,那么只有下一行将是该范围的一部分。
【讨论】:
以上是关于PHP中以下代码的输出将是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章