【问题标题】: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循环中

标签: php


【解决方案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 的范围,那么只有下一行将是该范围的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    相关资源
    最近更新 更多