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);