我正在/在一个极度过时的网站上工作,我不会把我的名字。在现有代码中似乎存在一种重新出现的模式,如下所示:
function foo() {
$a = 'a';
$b = 'b';
return;
$c = 'c';
$d = 'd';
}
我非常不愿意从我没写过的函数中删除现有代码,而且一切都按原样运行。但我想知道为什么?
我学到的一切(除了goto行调用)告诉我return语句后面的代码是无用的。是吗?为什么以前的程序员会这样做?
答案 0 :(得分:18)
永远不会执行return
语句之后的代码。最有可能原始开发人员想要快速测试变量的其他值并将其旧的实验留在函数中。使用版本控制,您可以删除现有代码并在需要时恢复它
答案 1 :(得分:3)
return语句下面的代码是无用的,它不会被执行。
答案 2 :(得分:1)
我的第一个想法是,编写代码的人最初添加了返回,因为它之后的代码不再需要运行,但由于某种原因不想删除其他代码。
这种情况的一个例子是作者重写代码以不同的方式实现它。他们将新的实现放在return语句之上,但是将代码保留在它下面,以便它作为“引用”用于完成它的工作方式。这样,如果他们意识到某些东西在新代码中不起作用,那么他们就可以轻松查看旧代码了。
不可否认,版本控制和单元测试使得它的实用性降低了很多,但不管怎样这样做并不常见。