关于PHP和闭包 在PHP5.3中是否可以使用闭包 我正在寻找一个简单的闭包示例,非常感谢使用最少的代码 如果在PHP5.3中可以使用闭包,那么它在作用域方面的行为是否与Javascript的闭包类似 Javascript闭包和PHP闭包(如果存在)之间有什么区别 在PHP5.3中是否可以使用闭包

关于PHP和闭包 在PHP5.3中是否可以使用闭包 我正在寻找一个简单的闭包示例,非常感谢使用最少的代码 如果在PHP5.3中可以使用闭包,那么它在作用域方面的行为是否与Javascript的闭包类似 Javascript闭包和PHP闭包(如果存在)之间有什么区别 在PHP5.3中是否可以使用闭包,php,javascript,closures,Php,Javascript,Closures,对 我正在寻找一个简单的闭包示例,非常感谢使用最少的代码 如果在PHP5.3中可以使用闭包,那么它在作用域方面的行为是否与Javascript的闭包类似 Javascript闭包和PHP闭包(如果存在)之间有什么区别 不知道。我从来没有深入研究过JSs闭包,但是在阅读了之后,您可能会了解到PHPs闭包是什么样子的。我认为您应该阅读文档,因为它非常有用。您已经阅读了吗?@FinalForm:闭包是带有外部函数的匿名函数,匿名函数是闭包,分别带有0外部引用。我不知道,如果“作者是个白痴”,但

  • 我正在寻找一个简单的闭包示例,非常感谢使用最少的代码
  • 如果在PHP5.3中可以使用闭包,那么它在作用域方面的行为是否与Javascript的闭包类似
  • Javascript闭包和PHP闭包(如果存在)之间有什么区别

不知道。我从来没有深入研究过JSs闭包,但是在阅读了

之后,您可能会了解到PHPs闭包是什么样子的。我认为您应该阅读文档,因为它非常有用。您已经阅读了吗?@FinalForm:闭包是带有外部函数的匿名函数,匿名函数是闭包,分别带有
0
外部引用。我不知道,如果“作者是个白痴”,但这句话并不是完全错误的(即使它不是完全正确)。@FinalForm:这并不意味着你不能阅读该页的其余部分。你会在几秒钟内意识到这就是你要寻找的“示例3:闭包和作用域”@KingCrunch闭包是外部函数中嵌套函数的组合,包括外部函数返回后持续存在的内存堆栈,一个环境与在其自身环境中起作用的函数的绑定。匿名函数是在缺少名称的程序流中立即执行的函数,因此它是匿名的。所以闭包和匿名函数不是一回事。匿名函数“可以”是闭包,但不是闭包。@最终形式:哇,我不知道,从哪里开始。。。例如:匿名通常不会立即执行,因为在这种情况下,没有人需要(匿名)函数,但可以直接将代码放入适当的位置。匿名函数就是通常由没有标识符的变量引用的函数。闭包的唯一区别是“一个环境的绑定”,你提到过你自己,但现在这只是一个观点,如果一个anon函数是一个没有任何绑定的闭包,我们就不会了。然而,如果你知道闭包是什么,为什么你会问这个问题?关于范围界定的一个注意事项:闭包的行为就像PHP中的任何函数/方法一样,它们会引起局部范围;与javascript不同,javascript可以像正常情况一样访问“全局”变量。为了解决这个问题,闭包使用
use($var)
语句从本地范围之外获取变量。您还可以
使用(&$var)
在外部修改var,并
使用($var,$params)
进行多次修改。您也可以在PHPs闭包中访问全局变量,但在PHP中,无论如何都不鼓励使用全局变量,与闭包、函数或方法无关。
use()
-语句是闭包与简单匿名函数的不同之处:它创建对非局部变量的引用(参见wikipedia文章)在你使用它之前,是的;但是当你在类方法中使用闭包时,使用
global
并不能像预期的那样起作用(它确实起作用了,它只会进入根目录,而不是一个级别)。@adlawson@KingCrunch我在PHP.net上查找use()时遇到了问题,你能链接我吗?@adlawson:当然
globals
的意思是“全局”,而不仅仅是“这和所有的孩子”,“上一级”,或者别的什么。但是,无论如何都不建议使用全局变量;)因此,我不知道我们为什么要谈论他们:他们的行为像往常一样,没有别的@最终形式:(你的问题评论中已经提到)
$text = "Hello World";
$closure = function () use ($text) { echo $text; }
$closure();