PHP等效的Java类型转换解决方案

时间:2010-03-07 23:40:33

标签: java php casting

由于PHP没有自定义类的类型转换,我将如何进行与此Java代码相同的PHP:

CustomBaseObject cusBaseObject = cusBaseObjectDao.readCustomBaseObjectById(id);
((CustomChildObject) cusBaseObject).setChildAttribute1(value1);
((CustomChildObject) cusBaseObject).setChildAttribute2(value2);

在我的情况下,如果我能做到这一点,那将非常。但是,在没有类型转换支持的情况下尝试此操作时,它会给出一个错误,即该对象不存在该方法。

谢谢,

史蒂夫

2 个答案:

答案 0 :(得分:3)

执行此操作的正确方法是使cusBaseObjectDao::readCustomBaseObjectById()生产出适当子项的工厂。之后就没有必要进行投射,因为PHP是动态语言

答案 1 :(得分:2)

在PHP中,您只需调用方法。类型是运行时属性:

$baseObj = $baseObjDao->readById($id);
$baseObj->setChildAttribute1($value1);
$baseObj->setChildAttribute2($value2);

Java是静态(和强烈)类型。 PHP是动态(和弱)键入的。因此,只需调用对象上的方法,如果它不是正确的类型,它将生成运行时错误。