可变函数!为什么不可以?类属性要怎么实现。

http://img.mukewang.com/58db1ecf000133d107010705.jpg

下雨天2015
浏览 1170回答 1
1回答

pardon110

$d是一个匿名函数作为变量的值,$d()为执行匿名函数,得到外部类Bim实例,$d()->doSomething(),执行Bim实例的doSomething方法,所以可行。$c是Container的实例$c->bim 实例属性指向的是一个匿名函数形成的闭包(匿名函数目前是通过Closure 类来实现的),PHP 会自动把此种表达式转换成内置类 Closure 的对象实例,很显然Closue类(php内置类)是没有doSomething方法$c->bim()  很显然执行类container的bim方法,显然该类没有此方法,所以$c->bim()->doSomething()不可行,因为他走到$c->bim()就报致命错了。
打开App,查看更多内容
随时随地看视频慕课网APP