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" 为循环缩进。其次,如果我们没有loopcondition 的范围,那么只有下一行将是该范围的一部分。

【讨论】:

以上是关于PHP中以下代码的输出将是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

nvidia-smi 的输出中的“关闭”是啥意思?

Mac 上 ps 输出中的“U<s”是啥意思? [关闭]

Sails.js 与 Meteor - 两者的优势是啥? [关闭]

最好的日志文件格式是啥? [关闭]

输出是啥? C编程[关闭]

PHP网站让我退出,可能是啥? [关闭]