downcasting in php5

只愿长相守 提交于 2019-12-02 10:05:09

问题


I've realized that there's no downcasting in php5. Is there a common pattern to achieve it?


回答1:


You could set the derived class to take a BaseClass object as a parameter in the constructor, and then copy the properties from that:

class Base {
    var $x, $y;
}

class DerivedClass extends Base {
    function __construct($param) {
         $this->copyFromBase($param); // put some type-checking here...
    }

    function copyFromBase($base) {
        $this->x = $base->x;    // you could definitely use a more
        $this->y = $base->y;    // intelligent way to do this
    }
}

$b = new Base();
$b->x = 'X';
$b->y = 'Y';
$b = new Derived($b);


来源:https://stackoverflow.com/questions/1721949/downcasting-in-php5

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!