0

我在这里读到:http ://osdir.com/ml/php.phpunit.user/2008-05/msg00009.html改变类final行为可能会用runkit改变——我只是看不出怎么做。

编辑:请不要 -1 我,我检查了 runkit_import() 函数以及http://php.net/manual/en/runkit.constants.php仍然找不到路

4

1 回答 1

1

它的用途……有限。插图:

final class Foo {
    protected $var = '456';
    function doSomething(){
        return '123';
    }
    function getVar(){
        return $this->var;
    }
}

class Bar {

}
runkit_class_adopt('Bar','Foo');

$d = new Bar();
var_dumP($d->doSomething());
//string(3) "123"
var_dumP($d->getVar());
//PHP Notice:  Undefined property: Bar::$var in .... on line 10
//NULL

您通常最好为final类编写装饰器(或final从源代码中删除)。

于 2014-11-23T12:35:57.483 回答