可能重复:
PHP 嵌套函数有什么用?
PHP 允许嵌套函数声明,如下所示:
function foo() {
function bar() {
return "bar";
}
return "foo";
}
但是这种语法的用例是什么?内部bar
被放入全局命名空间,因此它不会被垃圾收集,可从外部函数外部使用,并提供很多混乱和可能的错误。例如,调用foo
两次会导致错误,除非您将声明包装在if(!is_callable('bar'))
.
使用嵌套声明来创建条件声明也不好,因为它会造成混乱。“当它在那里工作得很好时,为什么抱怨没有这样的功能?!?!”。