貌似是无解啊,试了好多种办法都不行~

1 shiny PRO php5.3 不是有闭包吗,可以吗? |
2 shiny PRO 看花眼了,贴下代码看看? |
3 bixuehujin Aug 23, 2013 $self = $this; $func = function() use ($self) { //some stuff with $self } 这样就好 |
4 clippit Aug 23, 2013 PHP Changelog: 5.4.0 $this can be used in anonymous functions. |
5 suckli OP |
6 clippit Aug 24, 2013 @suckli 语言特性所限,应该没有什么办法吧…… @bixuehujin 的那种办法可能可以使用,但是最多只能访问到public的方法,protected和private肯定不行的 |
7 bombless Aug 24, 2013 让类成员函数来返回闭包不就行了……爱干什么干什么。 |
9 suckli OP @bixuehujin @clippit 试了一下,@bixuehujin 的方式的确靠谱 这里贴一个简单的例子 <?php class B { public function funca() { $self = $this; $b = function($arg1, $arg2) use($self) { echo $arg1; echo $arg2; $self->funcb(); }; echo '123'; $b('arg1','arg2'); } public function funcb() { echo 'echo from b function'; $this->funcc(); } private function funcc() { echo 'echo from c function'; } } $test = new B; $test->funca(); ?> |