2010-02-21 3 views
0

객체와 배열을 혼합하는 것이 좋지 않지만 필자는 그렇게해야 할 지 모르겠습니다.배열과 객체의 혼합

// 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 부분에 대한 불편 해요. 객체를 독점적으로 사용하는 것이 나을 것 같습니다.

실제로 개체와 배열을 혼합하는 것은 나쁜 습관으로 간주됩니까? 아니면 다른 모든 사람들이 괜찮다고 생각하는 것에 집착합니까?

+1

'$ participant [ 'participestant'] -> name'에 익숙하지 않다면'ArrayObject'를 사용하고'$ participant-> contestant-> name'을 사용할 수 있습니다. – Gordon

+0

@Gordon : 훌륭합니다 , 감사! –

답변

2

괜찮습니다. 배열이 적절한 곳에서는 배열을 사용하십시오. 객체가 의미가있는 곳에는 객체를 사용하십시오.

하지만 참가자가이 비교적 작은 코드 샘플을 보면 더할 나위없이 좋다고 생각할 수도 있습니다. 그렇다면 빠른 Participant 클래스를 작성하십시오. 너무 많은 오버 헤드가 느껴지더라도 걱정하지 마십시오. 이 시점에서 코드는 실제로 작동하기 때문에 개인적인 취향입니다. 앞으로 다룰 코드베이스에 관한 것입니다.

1

불필요하게 걱정하고 있습니다. 다른 언어에서는 시퀀스/매핑을 객체와 함께 사용하는 것이 일반적입니다. 배열은 요소의 수를 모르는 경우 나 "거친 꼬리표"집합 만 존재하고 객체가 정확히 요소의 수를 알고있을 때 유용하며, 각 요소는 특정 목적을 가지고있는 경우 유용합니다.