当前位置:  开发笔记 > 编程语言 > 正文

PHP中的GOTO命令?

如何解决《PHP中的GOTO命令?》经验,为你挑选了2个好方法。

我听说有传言称PHP正计划引入"goto"命令.该怎么办?

我尝试了一下,但没有找到任何描述性的东西.我明白这不会是一个" GOTO 10"式的命令......



1> Ishmaeel..:

他们没有添加真正的GOTO,而是扩展BREAK关键字以使用静态标签.基本上,它将增强断开switch嵌套if语句的能力.这是我发现的概念示例:


当然,一旦GOTO"谣言"消失,就没有什么可以阻止一些邪恶的家伙传播额外的COMEFROM笑话.做你的脚趾.

也可以看看:

http://www.php.net/~derick/meeting-notes.html#adding-goto


我认为这确实令人困惑,因为它本身的中断将跳出for循环,而不仅仅是if语句.

2> Ira Baxter..:

我总是对PHP设计师的愚蠢程度感到惊讶.如果使用GOTO的目的是为了使多重嵌套循环更有效率,那么有一种更好的方法:标记代码块和可以引用标签的break语句:

a:  for (...) {
    b:  for (...) {
         c: for (...) {
               ...
               break a;
           }
       }
   }

现在很清楚退出哪个循环/块,退出是结构化的; 你无法用真正的东西来获得意大利面条代码.

这是一个古老的,古老的想法.自70年代以来,设计良好的控制流程管理结构已经得到了解决,所有这些的文献早已写完.Bohm-Jacopini定理表明你可以使用函数调用,if-then-else和while循环来编写任何代码.在实践中,为了打破深层嵌套的块,Bohm-Jacopini样式编码需要额外的布尔标志("设置此标志以摆脱循环")这是笨拙的编码明智和低效(你不希望这样的标志在你的内环).使用if-then-else,各种循环(while,for)和break-to-labeled块,您可以编写任何算法而不会降低效率.人们为什么不阅读文献,而不是复制C所做的事情?哎呀.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有