Pourquoi PHP autoriserait-il les fonctions d'imbrication?Imbrication des fonctions PHP: dans quel but?
<?php
function foo() {
function bar() {
return "bar";
}
return "foo";
}
print foo();
print bar();
.. est valide PHP.
Mais:
- Pourquoi faudrait-il jamais de nidification?
- Et même si oui, pourquoi puis-je appeler la barre de n'importe où (et non, par exemple seulement avec foo(), ou par foo.bar() ou tel).
Je suis tombé sur ceci aujourd'hui, parce que j'ai oublié un support de fermeture quelque part, et j'en ai eu un de trop plus bas. Le code était valide et aucune erreur n'a été levée; mais tout a commencé à agir vraiment bizarre. Les fonctions ne sont pas déclarées, les rappels deviennent berserk et ainsi de suite. Est-ce une caractéristique, et si oui, dans quel but? Ou une certaine idiosyncrasie?
RÉPONSE: commentor souligne que c'est un doublon de What are php nested functions for.
Lovely. Comme si PHP avait besoin d'une autre raison pour attirer la haine ... –
A déjà été très bien couvert: duplication possible de [Quelles sont les fonctions imbibées php?] (Http://stackoverflow.com/questions/415969/what-are- php-imbriqué-fonctions-pour) – meagar
Aussi, juste parce que vous ne comprenez pas quelque chose ne fait pas "idiocracy", qui n'est pas un mot d'ailleurs. – meagar