由于PHP没有自定义类的类型转换,我将如何进行与此Java代码相同的PHP:
CustomBaseObject cusBaseObject = cusBaseObjectDao.readCustomBaseObjectById(id);
((CustomChildObject) cusBaseObject).setChildAttribute1(value1);
((CustomChildObject) cusBaseObject).setChildAttribute2(value2);
在我的情况下,如果我能做到这一点,那将非常。但是,在没有类型转换支持的情况下尝试此操作时,它会给出一个错误,即该对象不存在该方法。
谢谢,
史蒂夫
答案 0 :(得分:3)
执行此操作的正确方法是使cusBaseObjectDao::readCustomBaseObjectById()
生产出适当子项的工厂。之后就没有必要进行投射,因为PHP是动态语言。
答案 1 :(得分:2)
在PHP中,您只需调用方法。类型是运行时属性:
$baseObj = $baseObjDao->readById($id);
$baseObj->setChildAttribute1($value1);
$baseObj->setChildAttribute2($value2);
Java是静态(和强烈)类型。 PHP是动态(和弱)键入的。因此,只需调用对象上的方法,如果它不是正确的类型,它将生成运行时错误。