为什么PHP允许嵌套函数?
<?php
function foo() {
function bar() {
return "bar";
}
return "foo";
}
print foo();
print bar();
..是有效的PHP代码。
但:
- 为什么需要嵌套?
- 即使需要,为什么我可以从任何地方调用bar(而不是只能在foo()内部或通过foo.bar()等方式)。
今天我遇到了这个问题,因为我忘记了某个地方的闭括号,并在稍后多加了一个。代码是有效的,没有报错;但它开始表现得非常奇怪。函数未被声明,回调出现故障等等。
答案:评论者指出这是PHP嵌套函数的重复问题。