PHP对象问题
在PHP中为本例使用一组非常简单的对象 让我们说: ObjectA: 属性:DescId 方法:getListofData() ObjectB: 属性:DescId;名称 方法:getDescNameById() 我想知道的是,当ObjectA是从循环中调用函数的对象时,从ObjectB获取DescName的最佳方法是什么 我认为我需要实例化ObjectB(作为新的),然后将ObjectA.DescId传递到ObjectB.getDescNameById方法中 例如:PHP对象问题,php,oop,Php,Oop,在PHP中为本例使用一组非常简单的对象 让我们说: ObjectA: 属性:DescId 方法:getListofData() ObjectB: 属性:DescId;名称 方法:getDescNameById() 我想知道的是,当ObjectA是从循环中调用函数的对象时,从ObjectB获取DescName的最佳方法是什么 我认为我需要实例化ObjectB(作为新的),然后将ObjectA.DescId传递到ObjectB.getDescNameById方法中 例如: class objectA
class objectA {
function getListOfData(){
$myObjB= new objectB();
while ...
{
$myObjB->descId = $row["descId"];
$myDescName = $myObjB->getDescNameById();
...
$i++;
}
}
}
我很确定上述方法会奏效,但我不确定这是不是正确的方法,或者是否有其他方法可以做到这一点。这种东西有名字吗?有人提到延迟加载。这就是PHP中的内容吗?请记住,您的问题需要一些扩展 课堂就是一个食谱。对象是用该配方制作的实际菜肴 所以,如果你想知道菜谱的味道,你需要做点什么 在设计时,您通常会考虑类。也就是说,当你计划一顿晚餐时,你考虑的是你想要提供什么,是食谱,而不是成品。(在烹饪之前,你不会有这些菜。)也就是说,你可能会考虑到一些食谱很难执行,因此提供这些菜是一个危险的提议 这有意义吗 关于设计,您需要问自己一些问题: 您是否需要ObjectA,因为它们都存储同名的id?(大概他们是绑在一起的。) 这两者有什么区别 这可以组合成一个对象吗
这取决于这些方法的作用以及id的实际内容。请记住,您的问题需要进行一些扩展 课堂就是一个食谱。对象是用该配方制作的实际菜肴 所以,如果你想知道菜谱的味道,你需要做点什么 在设计时,您通常会考虑类。也就是说,当你计划一顿晚餐时,你考虑的是你想要提供什么,是食谱,而不是成品。(在烹饪之前,你不会有这些菜。)也就是说,你可能会考虑到一些食谱很难执行,因此提供这些菜是一个危险的提议 这有意义吗 关于设计,您需要问自己一些问题: 您是否需要ObjectA,因为它们都存储同名的id?(大概他们是绑在一起的。) 这两者有什么区别 这可以组合成一个对象吗
这取决于方法的作用和id的实际情况。此外,您应该在类b的构造函数中尝试分配任何必需的信息 因此: 可能成为:
$myObjB = new Object_B($row["descId"]);
$myDescName = $myObjB->get_description();
这有助于使B尽可能独立,这通常是OO的目标之一。此外,在B类的构造过程中,您应该尝试分配任何必需的信息 因此: 可能成为:
$myObjB = new Object_B($row["descId"]);
$myDescName = $myObjB->get_description();
这有助于使B尽可能独立,这通常是OO的目标之一。这些对象应该是什么?您的示例代码与您的意图描述不太匹配。i、 e.示例中没有对象A。@George while代码段是从ObjectAth调用的,这是示例中显示的一个非常关键的内容。这有很大的不同。更新了示例。谢谢。这可以合并成一节课。如果属性
DescId
来自数据库,我甚至看不出它的用途。实际上,getDescNameById
可能只是一个过程函数,它接受descId
作为参数并返回名称。这一切都取决于类的用途和方法的实际操作方式。这些对象应该是什么?您的示例代码与您的意图描述不太匹配。i、 e.示例中没有对象A。@George while代码段是从ObjectAth调用的,这是示例中显示的一个非常关键的内容。这有很大的不同。更新了示例。谢谢。这可以合并成一节课。如果属性DescId
来自数据库,我甚至看不出它的用途。实际上,getDescNameById
可能只是一个过程函数,它接受descId
作为参数并返回名称。这一切都取决于类的用途和方法的实际操作方式。。。正如你所提到的,我在设计上把这些物体与桌子结构紧密地结合在一起。我想你是在建议我实际设计一个对象,而不是根据数据的来源。@Jeff是的,非常正确:你是在建议我实际设计一个对象,而不是根据数据的来源。
足够公平。。。正如你所提到的,我在设计上把这些物体与桌子结构紧密地结合在一起。我想你是在建议我实际设计一个对象,而不是数据来源。@Jeff是的,非常正确:你是在建议我实际设计一个对象,而不是数据来源。