混合数组和对象

时间:2010-02-21 22:15:30

标签: php arrays object

我觉得将数组与对象混合很糟糕,但我不确定我应该这样做。

// Populate array
foreach($participants as $participant){
   $participants[$key]['contestant'] = new Contestant($participant);
   $participants[$key]['brand'] = new Brand($brand);
   $key++;
}

[...]

// Print array
foreach($participants as $participant){
   print "Name: " . $participant['contestant']->name;
   print "Nationality: " . $participant['contestant']->nationality;
}

我对$contestant['contestant']->name部分感到不舒服。我对使用对象感觉更好。

混合对象和数组实际上被认为是不好的做法,还是我对其他人认为合适的事情感到困惑?

2 个答案:

答案 0 :(得分:2)

对我来说感觉很好。如果数组有意义,请使用数组。如果对象有意义,请使用对象。

然而,也许你觉得参与者作为一个对象更有意义,看看这个相对较小的代码示例,它可能就是这样。如果是这样,请写一个快速参与者课程。如果这感觉太多开销,那么不要担心。在这一点上,它是个人偏好,因为你的代码实际上确实有效。这就是您希望将来使用哪种代码库。

答案 1 :(得分:1)

你不必要地担心自己。在其他语言中混合序列/映射与对象是相当普遍的。当您不知道元素的数量或仅存在“ragtag”元素集时,数组很有用,当您准确知道元素的数量时,对象很有用,并且每个元素都有特定的用途。