Fonctions imbriquées PHP : un examen plus approfondi
Les fonctions imbriquées en PHP partagent des similitudes avec les fermetures en JavaScript, mais elles servent des objectifs distincts au sein de PHP langage de programmation.
Dans les fonctions PHP imbriquées, une fonction interne est définie au sein d'une fonction externe. La fonction interne a accès à la portée de la fonction externe, y compris ses variables et paramètres.
Les fonctions imbriquées PHP sont principalement utilisées pour créer des méthodes privées ou des fonctions anonymes. Les méthodes privées ne sont accessibles qu'au sein de la classe dans laquelle elles sont définies.
Considérons l'exemple suivant :
<code class="php">function outer($msg) { function inner($msg) { echo 'inner: '.$msg.' '; } echo 'outer: '.$msg.' '; inner($msg); } inner('test1'); // Fatal error: Call to undefined function inner() outer('test2'); // outer: test2 inner: test2 inner('test3'); // inner: test3 outer('test4'); // Fatal error: Cannot redeclare inner()</code>
Dans cet exemple, la fonction interne ne peut être appelée que depuis l'intérieur de la classe externe. fonction. L'appeler directement (par exemple, inner('test1')) entraîne une erreur fatale.
PHP 5.3 a introduit des fonctions anonymes, offrant un comportement plus proche de celui de JavaScript :
<code class="php">function outer() { $inner = function() { echo "test\n"; }; $inner(); } outer(); outer(); inner(); // PHP Fatal error: Call to undefined function inner() $inner(); // PHP Fatal error: Function name must be a string</code>
Ce code crée une fonction anonyme ($inner) au sein de la fonction externe. La fonction anonyme peut être appelée depuis la fonction externe, mais elle n'est pas accessible ni appelée directement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!