周梦康 发表于 2018-09-12 1465 次浏览 标签 : PHP框架笔记
class A {
    public function init(){
        $reflect = new \ReflectionClass($this);
        $props = $reflect->getProperties(\ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PRIVATE | \ReflectionProperty::IS_PROTECTED);
        foreach ($props as $prop){
            $prop->setAccessible(true);
            $doc = $prop->getDocComment();
            preg_match("/@var (.*)/",$doc,$matches);
            $className = $matches[1];
            if (class_exists($className)){
                $prop->setValue($this, new $className);
            }
        }
    }
}

class B extends A{

    /**
     * @var C
     */
    private $c;

    public function x()
    {
        $this->c->test();
    }
}

class C {
    public function test(){
        echo __METHOD__."\n";
    }
}


$b = new B();
$b->init();
$b->x();

👇 下面是我的公众号,高质量的博文我会第一时间同步到公众号,给个关注吧!

评论列表