-2

我有数百个类模型(MVC 系统模型)。
我如何用关系类创建实例?

类中的示例有这样的方法:

class object {
    /**
     * Simply create new instance of this object
     * @return object
     */
    function createNewInstance() {
        $class_name = __CLASS__;
        $return = new $class_name;
        return $return;
    }
}

正如我们所看到的,__CLASS__如果这个类,我用来获取关系名称。
有没有更好的方法来创建实例?
我听说有反射方法可以做到吗?

4

1 回答 1

1

看来你需要 get_class() http://codepad.org/yu6R1PDA

<?php
class MyParent {
    /**
     * Simply create new instance of this object
     * @return object
     */
    function createNewInstance() {
        //__CLASS__ here is MyParent!
        $class_name = get_class($this);
        return new $class_name();
    }
}

class MyChild extends MyParent {
   function Hello() {
    return "Hello";
    }
}

$c=new MyChild();
$d=$c->createNewInstance();
echo $d->Hello();

也有效:

class MyParent {
    /**
     * Initialise object, set random number to be sure that new object is new
     */
    function __construct() {
    $this->rand=rand();
    }

}

class MyChild extends MyParent {

   function Hello() {
    return "Hello ".$this->rand;
    }
}

$c=new MyChild();
$d=new $c;
echo $c->Hello()."\n";
echo $d->Hello()."\n";
于 2012-11-04T09:06:04.243 回答