有没有人知道如何从类中定义的匿名函数内部访问父类的函数?这实际上是可能的吗?我不会假设,我必须以某种方式使用“use”关键字将父类引用到匿名函数中。
但是,如果我在运行Windows的版本为5.4.12的本地apache服务器上运行以下代码,则可以正常输出b和a。
如果我在带有Suhosin-Patch(cli)的php版本5.3.10-1ubuntu3.11的linux上运行的apache服务器上运行它,我收到错误Fatal error: Cannot access parent:: when no class scope is active on line 17
。
echo("PHP version: ".phpversion()."<br /><br />");
class A {
public function fn() {
echo("in A");
}
}
class B extends A {
public function fn() {
echo("in B");
$anonFn = function() {
parent::fn(); // this causes the error (sometimes)
};
$anonFn();
}
}
$b = new B();
$b->fn();
如果您将上述代码粘贴到http://writecodeonline.com/php/,则仍会出现错误。
所以我的问题是,
谢谢!
答案 0 :(得分:3)
PHP 5.4包含闭包中的类范围,而PHP 5.3则没有。