“ Magento PHP开发人员指南”的第2章指出:
Zend Framework 2使用100%面向对象的代码,并利用PHP 5.3的大多数新功能,即名称空间,后期静态绑定,lambda函数和闭包。
而帖子中的“关闭”和“ lambda”有什么区别?有一些答案(例如,lambda只是一个匿名函数,而闭包是一个可以访问其参数列表中未包含的变量的函数),似乎是特定于Python编程语言的(提到了Scheme编程语言)。例如,根据该帖子,似乎在Python中可能存在不是lambda的闭包,也可能是不是闭包的lambda。
但是,我对PHP编程语言而不是Python感兴趣。以下答案之一似乎指出,在PHP中,所有闭包都是lambda,这与与Python有关的帖子所指出的冲突。
在我看来,这些概念因语言而异,并且我对PHP感兴趣,因此这篇文章。
所有这些都令人困惑。虽然我认为lambda函数通常只是未命名的函数,但以下Wikipedia文章则介绍了有关闭包的更多信息:
http://en.wikipedia.org/wiki/Closure_%28computer_science%29
尽管在PHP中没有示例。
闭包是php中的lambda函数,它封装变量,以便一旦其原始引用超出范围就可以使用它们。
闭包是lambda函数,但是除非指定use
关键字,否则lambda函数不是闭包。
这是一个更好的答案:https : //stackoverflow.com/a/220728/1152375
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句