什么是PHP嵌套函数?

在JavaScript中,嵌套函数非常有用:闭包,私有方法以及您拥有的东西。

什么是嵌套PHP函数?有人使用它们吗?

这是我做的小调查

<?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()

回答:

基本上没有,我一直将其视为解析器的副作用。

伊兰·加珀林(Eran

Galperin)误认为这些功能是某种私有的,只是outer()在运行之前才声明它们。它们也不是私有范围的,尽管确实延迟了,但它们确实污染了全球范围。作为回调,外部回调仍然只能被调用一次。我仍然看不到将其应用于很可能多次调用别名的数组有什么帮助。

唯一的“现实世界”的例子,我能挖出个是这个只能运行一次,并且可以IMO改写清洁。

我唯一能想到的是让模块调用[name] _include方法,该方法在全局空间中设置多个嵌套方法,并与

if (!function_exists ('somefunc')) {

function somefunc() { }

}

检查。

PHP的OOP显然是一个更好的选择:)

以上是 什么是PHP嵌套函数? 的全部内容, 来源链接: utcz.com/qa/407769.html

回到顶部