Смешивание массивов и объектов - PullRequest
0 голосов
/ 22 февраля 2010

Мне плохо от смешения массивов с объектами, но я не уверен, что должен.

// 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 ]

2 голосов
/ 22 февраля 2010

Мне хорошо. Если массив имеет смысл, используйте массив. Если объект имеет смысл, используйте объект.

Однако, возможно, вы чувствуете, что участник имеет больше смысла как объект, что, глядя на этот сравнительно небольшой пример кода, вполне возможно. Если так, напишите краткий класс Участника. Если это похоже на слишком много накладных расходов, то не беспокойтесь об этом. На данный момент это личное предпочтение, так как ваш код, на самом деле, работает. Все дело в том, с какой базой кода вы бы предпочли работать в будущем.

1 голос
/ 22 февраля 2010

Вы беспокоитесь излишне. В других языках довольно распространено смешивать последовательности / отображения с объектами. Массивы полезны, когда вы не знаете количество элементов или существует только набор элементов "разношерстных", а объекты полезны, когда вы точно знаете количество элементов, и каждый из указанных элементов имеет определенное назначение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...