重複の可能性:
PHPの入れ子関数は何のためにありますか?
PHPでは、次のような入れ子関数の宣言が可能です。
function foo() {
function bar() {
return "bar";
}
return "foo";
}
しかし、そのような構文のユースケースは何ですか?内部bar
はグローバル名前空間に配置されるため、ガベージコレクションは行われず、外部関数の外部から使用でき、多くの混乱とバグの可能性があります。たとえばfoo
、宣言を。でラップしない限り、2回呼び出すとエラーになりますif(!is_callable('bar'))
。
ネストされた宣言を使用して条件付き宣言を作成することも、混乱を招くため、適切ではありません。「そこでは完全にうまく機能しているのに、なぜそのような機能がないと不平を言うのですか?!?!」