“goto”语句直接来自 ASM 或任何其他汇编语言。
这是一个链接:http ://be2.php.net/manual/en/control-structures.goto.php
我想知道:这可以使我的代码更有条理吗?我怎样才能在更大的项目中实现这一点,而不会搞砸。由于 goto 将允许您来回跳转,因此如果您以错误的方式使用它,意外分配和无限循环正在等待发生。
有人可以给我一个很好地使用它的例子吗?
编辑:好吧,我已经看到了一些回复,显然对于“goto”语句的使用存在广泛的共识,而且它很糟糕。
所以我仍然想知道:为什么 PHP 会费心将它添加到语言中。如果他们没有看到其中的东西,他们就不会这样做……那为什么呢?
另外:StackOverflow 上关于“goto”的一般讨论
EDIT2:看到这个问题导致很多不好的事情对 goto 语句感到难过,我去问了我的父亲。他今年 52 岁,是一名工业工程师。
他告诉我几次,他在他的日子里做了很多编程,主要是在 FORTRAN 和 COBOL 中。现在他做IT服务、服务器和网络管理等。
不管怎样,他说了一些“回到我的时代……”
讨论了一下之后,他回到了 goto 语句,说即使回到他学生时代,他们就已经知道这不是一个聪明的使用它的想法,但他们当时并没有更好的选择。Try/catch 还需要几年的时间,而且几乎没有消除错误处理。
那么你做了什么来检查你的程序?在末尾添加几行,允许您打印输出以及您需要在代码中检查的所有内容,然后放置以下行:“goto printing;”或类似的内容,以开始打印数据。
并且以这种方式,您逐渐调试了您的代码。
他同意在现代编程世界中使用 goto 是毫无用处的。他认为唯一合理的用途是“紧急中断”,用于极端调试和意外情况。有点像goto fatal_error;
,并让代码的“fatal_error”部分做一些事情来向您展示深入的结果。
但仅限于创建某些东西的过程中。成品不应该有 goto 语句。