PHP の入れ子関数: 詳細
PHP の入れ子関数は JavaScript のクロージャーと似ていますが、PHP 内で異なる目的を果たします。プログラミング言語。
ネストされた PHP 関数では、内部関数が外部関数内で定義されます。内部関数は、変数やパラメーターを含む外部関数のスコープにアクセスできます。
PHP の入れ子関数は、主にプライベート メソッドまたは匿名関数を作成するために使用されます。プライベート メソッドは、それが定義されているクラス内でのみアクセスできます。
次の例を考えてみましょう:
<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>
この例では、内部関数は外部関数内からのみ呼び出すことができます。関数。これを直接呼び出すと (例: inner('test1'))、致命的なエラーが発生します。
PHP 5.3 では匿名関数が導入され、より 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>
このコードは外部関数内の匿名関数 ($inner)。匿名関数は外部関数内から呼び出すことができますが、直接アクセスしたり呼び出したりすることはできません。
以上がPHP の入れ子関数の用途と制限は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。