关于PHP5.3中加入的goto语句的详解
1. 如果你正在编写好的PHP代码,您应该不需要跳转。我认为这是一个错误,他们正在将它添加在,因为它只是导致懒惰编程。 看 对于一个好的上又增加了这一到PHP,而且,这里的堆栈溢出,
2. 我只发现过的goto: 打出来的嵌套循环。但大多数新的语言必须做到这一点没有goto反正(break <number>在PHP中 CodeGo.net,或者break <loop label>在Java中,等等)。 去到一个函数的末尾清理部分。但是再次,这不是在一个垃圾收集的语言。 换句话说,如果你不知道你是否goto你不应该。
3. 有没有这样的事情作为跳转。 也许,只是也许,它可能走出多重嵌套循环,但你已经可以做“破2”,这样的。标记符在Java中一样会比转到更好地为这一目的。 也许是与代码编写异常,当你需要跳到一堆一次其中一个发生故障的结尾。但是,这只是固定蹩脚的代码更蹩脚的代码。
4. 它可用于调试目的,因此您不必出或代码重构块只是为了临时改变了工作线程。
5. 在经典的VB编码,使用goto是很方便的用于仿真的try / catch错误处理是这样的:
Function MyFunction() as String '-- start of error block ' On Error Goto Catch ' do something here that might cause an error MyFunction = "IT WORKED" Exit Function Catch: ' error occured - do something else MyFunction = Err.Description ' '-- end of error block End Function ...这里是一种模拟的try / catch /终于..Function MyFunction() as String '-- start of error block ' On Error Goto Catch ' do something here that might cause an error MyFunction = "IT WORKED" Goto Finally Catch: ' error occured - do something else MyFunction = Err.Description Err.Clear Finally: ' put your finally code here ' '-- end of error block End Function
它也可以用于清除在函数的结尾,虽然我想你可以做另一个函数可以被调用来做到这一点的清理情况。 说实话,我从来没有在PHP中,我心想:“嗯,我希望能有一个goto我没有对他们为什么决定做这个读了,可是,那些家伙都是非常聪明,并有机会考虑到PHP的非常好的方向,到目前为止,所以也许正期待有必要,我们不知道呢。
6. 对我具有在语言使用goto看到的是跨语言能力的端口。我写在C语言的解析器生成器生成解析器与goto语句(它比更理智的控制结构更容易使用goto),现在将它移植到PHP是没有那么多头疼的。
7. 编写有限状态机的时候,goto是。当解析上下文释放你确实需要其中的一个。虽然我们可以生活在没有跳转,如果continue $case;是一个switch块中的有效跳转到一个不同的情况和关闭过程中有案范围尽可能多的语言时下有。在那之前,我们几乎套牢的goto。
8. 跳转可以帮助减少代码重复的堆栈展开,在下面的伪代码:
do A if (error) goto out_a; do B if (error) goto out_b; do C if (error) goto out_c; goto out; out_c: undo C out_b: undo B: out_a: undo A out: return ret;
(伪由罗伯特爱,从linux内核归档的邮件列表采取代码:)
9. 由于之前已经说过,GOTO是唯一真正需要的类型的算法,通常是那些在语言解析或有限状态机。我从来没有错过在PHP缺乏goto语句。 OTOH,我有一个语言,其中只有两个结构是函数和条件goto方法:SNOBOL4。由于意大利面条代码的风险是如此之高,最SNOBOL4是/很小心的避免这一点。但是goto语句也使很紧的编程,创意循环执行等。它实际上是更容易做到的FSM型圈,如果你有在使用goto。
10. 我承认我转到我的代码。 :) 唯一的理由似乎有利于在最短的flyway从其他语言到PHP(实际上只改变语言不碰控制结构)和重构代码的移植的第2阶段。 我个人认为和同事,因为他们可以避开有条件决裂-S的循环,他们将能够抵御转到诱惑。
11. 生成的代码可以使goto语句,我猜。对生成的代码的好处是,你并不需要去维护它-你只是重新生成它。
12. goto真正应该尽管这是在语言,并会进行过时由于更好的编程实践。现在添加它似乎是一个倒退的一步。
13. goto语句中的B大优势就是学习曲线。人们不禁要问,为什么像visualstudia和Mac电脑的工具做的很好。原因是,人们需要的不仅仅是一个伟大的产品,他们希望有一个 伟大的产品,他们可以在短短一个小时左右学习。现在很多 一个天只计划为他们的工作之一。我看到这么多的书说,一个人永远不能 使用goto语句,然后给五年左右的技术,例如,他们说每消除 需要它。我说,只是事实,5是该有多好转到证明 是!!我没有教的五件事,包括异常结构, 把整个章节来解释!!当你真正需要的是一个简单的跳转 可在30秒内进行解释。当然,你可以创建恶意代码与他们如果 希望---但是,嘿,最不想写糟糕的代码,如果他们 他们才可以呢。最goto语句在我们的实验室所做的代码简单 了解和学习;程度远远超过了读一本2000页的书。
以上就是关于PHP5.3中加入的goto语句的详解的详细内容,更多请关注其它相关文章!
上一篇: Photoshop教程:花卉更加嫩绿清晰
下一篇: php中的goto的用法实例(代码)