PHP 中的嵌套函数
在父函数中定义函数时,我们必须先调用父函数,然后子函数才可用。
一旦父函数被调用,子函数将在 PHP 脚本中全局可用,而不仅仅是在父函数中。
如果你仍然想用嵌套函数弄脏你的手,你应该看看下面的例子:
function MyFunc() { //The Nested Functions function DoThis() { return 'Yeah!'; } function DoThat() { return 'Nah!'; } } //Calling MyFunc will define the child-functions MyFunc(); echo DoThis();
我们还可以在父级内部使用嵌套函数:
function MyFunc($content) { //The Nested Functions function DoThis() { return 'Yeah!'; } function DoThat() { return 'Nah!'; } //The Main Function Script if ($content == 'Yes yes') { return DoThis(); } else { return DoThat(); } } //The Main Script $string = 'Yes yes'; echo MyFunc($string);
嵌套函数(又名:函数内的函数)在 PHP 中是可能的,有时以匿名函数的形式使用。
也可以在其他函数内部创建命名函数,就像在过程 PHP 中所做的那样;但我不会推荐这个。
一个可能有用的地方是 polyfills,尽管我还没有看到它的实际例子。
嵌套函数的问题在于每次调用函数时都会重新声明它们;这意味着它们对性能的影响很小。
它们还会污染全局范围,因为它们一旦声明就在全局范围内可用;因此,我们可能想了解面向对象的 PHP。
过程 PHP 中的嵌套函数如下所示:
function my_parent_function() { say_hallo(); function say_hallo() { echo 'Hallo World!'; exit(); } } //Call the parent function my_parent_function();
PHP匿名函数
当我们在函数或者方法中使用匿名函数时,它也是一种嵌套函数。
PHP 中匿名函数的语法类似于 JavaScript 中使用的语法。
匿名函数有很多用途,一个是当你使用 array_walk 函数来“遍历”一个数组时:
$my_array = ['PHP7', 'Scripting'] array_output($my_array); function array_output($array) { array_walk($array, function ($value, $key) { echo PHP_EOL . $key . ':' . $value; }); }
日期:2020-06-02 22:15:41 来源:oir作者:oir