【发布时间】:2011-05-10 09:11:09
【问题描述】:
为什么 PHP 允许嵌套函数?
<?php
function foo() {
function bar() {
return "bar";
}
return "foo";
}
print foo();
print bar();
.. 是有效的 PHP。
但是:
- 为什么永远需要嵌套?
- 即使是这样,为什么我可以从任何地方调用 bar(而不是,例如仅使用 foo() 或通过 foo.bar() 等)。
我今天遇到了这个问题,因为我在某处忘记了一个右括号,而且还有一个太多了。代码有效且未抛出错误;但这一切都开始变得非常奇怪。函数没有被声明,回调变得疯狂等等。 这是一个功能吗?如果是,目的是什么?还是有什么异能?
ANSWER:评论者指出这是What are php nested functions for的重复。
【问题讨论】:
-
可爱。好像 PHP 需要另一个理由来引起仇恨......
-
已经很好地覆盖了:What are php nested functions for?的可能重复
-
另外,仅仅因为你不理解某事并不能使它成为“白痴”,顺便说一句,这不是一个词。
-
@meagar:我认为他的意思是“特质”。
-
@Ignacio 我以为他的意思是“白痴”...